【发布时间】:2018-12-31 03:22:56
【问题描述】:
这个问题是关于访问可用性组侦听器的正确方式?
假设我有两个具有以下 AG 的 AlwaysOn 可用性组:AG1 和 AG2。
我还有 2 个听众,分别称为 LISTENER1(在 AG1 上)和 LISTENER2(在 AG2 上)。
我有 2 个 SQL 节点 NODE1 和 NODE2 并且都运行了 2 个 SQL 实例:INSTANCE1 和 INSTANCE2。
我如何正确通过侦听器连接到AG1 的主副本?
我知道它不应该是 NODE1\INSTANCE,但以下哪项是正确的?
LISTENER1
或
LISTENER1\INSTANCE1
我注意到两者都工作正常,我假设后者连接到 LISTENER1 的主副本,然后让 SQL 浏览器发挥它的魔力并连接到 INSTANCE1(幸运的是,这在这个特定设置中恰好是正确的)。
我注意到如果我使用 LISTENER1\INSTANCE2,这也可以,但是连接到托管 AG1 主副本的节点的 INSTANCE2 实例!
兔子洞更进一步:如果我在两个 SQL 节点上都安装一个默认实例,我会得到另一个行为:连接到 LISTENER1,将我连接到默认实例。
我的逻辑是正确的(SQL 浏览器服务)还是我完全错了?
仅供参考:在这种情况下,命名实例使用动态端口,并且所有侦听器都托管在端口 1433
【问题讨论】: