同一 IP 下的多个可用性组

J1m*_*mmy 3 sql-server-2012 availability-groups

是否可以将 4 个可用性组分布在 3 个服务器上,所有这些服务器都在同一 IP 下?

例如,无论数据库是在服务器 1 还是服务器 3 中,我都希望用户连接到 SQLSTACK01 上的 DATABASE01。

谢谢!

Bre*_*zar 5

理论上,每个可用性组都需要自己的 IP 地址(和虚拟网络名称)用于侦听器。通过这种方式,您可以在不同位置之间使主服务器失败 - 毕竟,您可以在 server1 上拥有一个作为主服务器的 AG,而您将一个单独的 AG 故障转移到 server2,因为它存在损坏问题。

在实践中,您可以在没有侦听器的情况下使用可用性组,并且只需让您的应用程序连接到特定的 SQL Server,完全绕过侦听器(和 IP 要求)。然而,这意味着:

  • 管理故障转移完全取决于您
  • 每次发生故障转移时,您都必须接触应用程序的每个连接字符串,因为服务器名称会更改(或者您必须使用 DNS CNAME)
  • 您不能让一些 AG 在一台服务器上为主,而另一些在另一台上(换句话说,所有 4 个主要可写工作负载必须在同一台服务器上)
  • 您不能使用只读路由 - 如果您想在辅助服务器上运行只读工作负载,您的应用程序必须按名称连接到其他服务器

它有很多缺点,但它是可行的。(StackOverflow 以这种方式运行了一段时间,不确定它们是否仍然存在,因为我们在 AG 侦听器方面遇到了很多问题。)