在 SQL Server 中结合故障转移群集和数据库镜像时,需要更改镜像伙伴超时值,以便本地群集有机会在数据库镜像故障转移之前进行故障转移。我很好奇人们在结合这些技术时会做什么——我教授各种 HA 课程,这种组合并不常见。
如果您将故障转移群集和数据库镜像结合使用,以下是我的问题。如果您能在每个回复中回答所有问题,那将对我非常有帮助。我不需要解释为什么需要改变或这些技术如何工作 - 我在微软时曾经拥有它们 - 我对行业实践很感兴趣,现在将它们结合起来的可能性已经存在了 4 年。
1) 平均而言,群集 SQL Server 实例需要多长时间才能完成故障转移?(我知道这取决于需要多少崩溃恢复,但您的平均值是多少?)
2)对于这些相同的实例,您将镜像伙伴超时设置为何值?
3)您是否可以接受这样的事实:真正的集群中断可能发生,并且可能要过相当长一段时间镜像才会注意到故障已经发生,因为您已经增加了镜像伙伴的超时时间?
感谢所有回复!
答案1
保罗,1.通常是几秒钟,最多几分钟,这取决于……(剩下的你们知道的)。
如果我设置自动故障转移,我会花几分钟时间。这样站点到站点 VPN 连接就有时间恢复,集群可以重新启动等。至少我可能会比本地断电时集群节点重新启动所需的时间多花 4 分钟。
是的。DR 问题通常定义为一小时以上的故障。此外,全局负载均衡器可能需要更长的时间才能注意到其他站点已关闭,并上传所有 DNS,以及 DNS 上的 TTL 时间。这个总时间应该是自动故障转移时间的上限。
答案2
我没有参与最初的设计,但事情的设置如下:
- 每个站点上有 2 个节点集群,运行主动/主动
- 该应用程序总共使用 5 个数据库,其中 4 个在一个实例上运行。另一个数据库 1 单独运行(负载高得多)
- 这些站点通过暗光纤连接
- 每个站点都有相同数量的使用镜像感知客户端的 Web 服务器
- 为所有 5 个数据库设置数据库镜像
每个站点都有另一台独立服务器可以充当见证服务器。见证服务器当前在所有主体所在的站点上运行。
我从未见过集群故障转移。镜像故障转移很快,我认为最多只需 10 秒。
所有数据库的合作伙伴超时时间为 30 秒
根据设计,镜像故障转移将先于群集故障转移发生。尽管每个实例都配置为仅使用服务器上可用 RAM 的一半,但数据库仅作为额外的冗余级别进行群集。