MS SQL服务器集群是否能够在节点之间执行无缝故障切换? 也就是说,客户不会注意到任何改变,除了在转换期间可能会有短暂的延迟。
只有这样,我知道实现这个是使用hyper-v和使用“实时迁移”。 这允许将虚拟机从一个物理节点转换到另一个物理节点的“有状态”故障转移。 您将需要结合使用HA选项,因为当您需要修补虚拟机的操作系统时,仍然会停机。 数据库镜像可能是一个很好的select,但是这在故障切换时不是100%透明的。
AlwaysOn(SQL 2012及更高版本中提供)提供了三服务器安排(主要,次要,监听器)。 与SQL Server Native Client 11.0(SNAC 11.0)一起使用时,它允许客户端应用程序在故障转移后自动并透明地重新连接到可用性组。 这个configuration比以前用集群,dynamic路由规则,以及其他所有东西都要简单得多。
正如Paul Randal所解释的那样,复苏可能不是即时的。 然而,理论上在故障转移期间闲置的客户端不会注意到下一个查询的延迟。
高可用性镜像,在那里你有一个3服务器设置,与一个委托人,镜子和见证人大多数时间是一个非常快速的故障转移,但是,最近Paul Randal博客,这并不能保证是事实。 看到这个post ,(不能发表另一个,没有足够的代表)。 没有绝对的100%无缝故障转移,但是在SQL Server级别上,镜像是最好的select,因为它只会使事务处理失败,客户端自动连接到另一个节点。 正如Nick所说,在虚拟机上运行并使用实时迁移对于HA来说可能是最好的select,但是在改变环境configuration,f.ex对操作系统的改变方面并不是很灵活。