首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个实例和可用性组

多个实例和可用性组
EN

Database Administration用户
提问于 2019-05-06 09:58:16
回答 2查看 1.4K关注 0票数 3

在我的场景中,每个服务器中有两个服务器,其中两个是Server实例:

  • 服务器1:实例1和实例2
  • 服务器2:实例1和实例2

我在以下实例之间创建了可用性组:

  • 实例1来自服务器1,实例1来自服务器2:可用性组1
  • 实例2来自服务器1,实例2来自服务器2:可用性组2

我创造了两个听众:

  • 侦听器1,用于可用性组1
  • 侦听器2,用于可用性组2

问题是,当我试图连接侦听器1时,它会将我连接到可用性组1,但当我尝试使用Listener 2时,它也会将我连接到可用性组1,而不是可用性组2。

我不明白我做错了什么。

EN

回答 2

Database Administration用户

发布于 2019-05-06 10:24:28

这种情况可能是由于实例和侦听器

的TCP端口配置造成的。

如果Server的一个实例已通过实例侦听器侦听TCP端口1433,并且在侦听端口1433的计算机上没有其他服务(包括Server的其他实例),则这不会导致与可用性组侦听器发生端口冲突。这是因为可用性组侦听器可以在同一服务进程中共享相同的TCP端口。但是,不应将Server的多个实例(并排)配置为在同一端口上侦听。

来源

简而言之,只要将实例的tcp端口更改为1533、1633等不同的端口,就可以让两个侦听器监听端口1433。

您还可以使用与1433不同的端口号,但是需要在连接字符串(S)中指定这些端口号。

在“一个实例,一个侦听器”的情况下,您可以对两者使用相同的端口。

票数 1
EN

Database Administration用户

发布于 2019-05-07 00:25:14

最可能的原因是您的端口配置。每个服务器上至少有一个实例将运行在一个非标准端口上(除了1433),但是如果您的两个侦听器都配置了默认配置,它们将监听端口1433。这将导致端口冲突,而先启动并开始侦听该端口的SQL实例将响应连接。

根据您的描述,我推测两个服务器上的实例1都在监听端口1433,而两个侦听器也在监听。当您通过任一侦听器名称进行连接时,它在端口1433上连接,在这两种情况下都是实例1,因为您不能跨Server实例共享端口。

要解决此问题,首先应将Server实例配置为使用非默认端口(链接)。最后,您应该重新配置侦听器以使用不同的端口(链接)。侦听器端口可以与实例端口相同,但它们不能与同一服务器上的其他实例或侦听器发生冲突。因此,监听器1可以使用与实例1相同的端口,但必须与实例2和侦听器2不同。

注意,当使用非默认端口时,需要在连接字符串- Server=tcp:Listener1,1456;Database=MyDB;IntegratedSecurity=SSPI中指定端口号。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/237470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档