在我正在考虑的部署中,我们有一个需要高度可用的生产 SQL 服务器。它将设置在 Server 2008R2 集群上。Hyper-V 已经设置好了。我担心在 VM 中运行 SQL 与根分区上的 SQL 集群相比,无法提供足够的高可用性解决方案。在 VM 中运行的 SQL 性能不是问题,我只是担心在硬故障转移的情况下,VM 会重新启动,导致停机时间比普通 SQL 集群的故障转移时间长。
我感兴趣的有几个方面。VM 停机时间与 SQL 集群的停机时间有什么不同吗?SQL 集群中的平均故障转移多长时间?SQL 集群是否有一些隐藏的优势,例如事务被发送到的共享队列,所以如果一个节点关闭,事务将在数据库恢复联机后应用到数据库?还是没有区别?
目前,Hyper-V 看起来相当不错,因为可以在不中断任何客户端访问的情况下运行计划中的故障转移。
SQL Server 故障转移涉及运行拥有数据库的主服务器和准备拥有数据库的备份服务器。在故障转移的那一刻,备份服务器获得存储的所有权,重放日志,然后使数据库上线。接下来是根据需要将数据库的热门部分放入内存的时期。故障转移时间的最大限制是重播日志,因为这需要在数据库开始响应查询之前发生。
如果您集群虚拟机而不是 SQL 服务器,则添加虚拟机重新启动时间以及任何文件系统检查。这些往往不会支配总恢复时间。