我正在第一次设置始终在高可用性集群上。在配置组并进行测试以确保其正常运行后,任何人都可以从网络角度向我解释,SQL 如何知道何时进行故障转移,以及连接到 SQL 服务器的应用程序如何知道它指向何处?
因此,例如,我有一个foo
连接到命名实例的应用程序DB01.FOO
。当foo
失败并转至DB02.FOO
时,我的应用程序如何知道它应该与 通话DB02.FOO
?
DB02.FOO
在同一个域中,但在不同的服务器中。在尝试之前,我只是想全面了解这方面的所有方面。如果有人会推荐任何链接,那也很棒。
有一个灵活的故障转移策略,您可以使用它来调整对触发故障转移的标准的敏感度。默认值为
FAILURE_CONDITION_LEVEL = 3
“严重错误、服务器无响应或服务器停机”。您可以在此处和此处查看更多详细信息。如果您的可用性组侦听器配置正确,则连接字符串不需要任何进一步的知识即可始终连接(即使在重试之后)到特定服务器上的主副本——它根本不需要知道这些实现细节。它需要做的就是指向侦听器,侦听器确定主副本当前是在 DB01 还是 DB02 上。这非常强大,因为它允许您调整 AG 配置并在整个地方移动副本,而无需接触应用程序(除非您 (a) 添加具有只读意图的副本或 (b) 必须移动听者)。您可以在此处查看更多详细信息。