有什么方法可以提供 SQL Server 2008 R2 100%的正常运行时间?
根据我的经验,不同复制方法的停机时间如下:
- 日志传送:批次(仅适用于 DR)
- 使用 NLB 镜像:约 45 秒
- 聚类:约 5-15 秒
所有这些解决方案都涉及从源头断开所有连接,因此如果停机时间太长或应用程序的网关不支持在任务中间重新连接,那么你就倒霉了。
我能想到的解决这个问题的唯一方法是将集群抽象到一个级别(通过虚拟化然后启用 VMWare FT。真恶心。无论如何,祝你好运,让它在四插槽、32 核系统上运行。)。
还有其他方法可以提供 SQL Server 100% 的正常运行时间吗?
答案1
不。使用 SQL Server 不可能达到 100%。是的,是几个 9。
至于集群:在任何时间点,只有一个单独的 SQL Server 安装可以“拥有”MDF。因此,当另一个实例接管并且连接中断时,您将拥有前滚/回滚周期。这决定了集群故障转移的时间:通常它可以在 10 秒内完成。
您在镜像方面也遇到了同样的问题:只有一个拥有/控制 SQL Server 实例
您可以对客户端进行编码,使其在超时/死锁时重试,这样可以减少故障转移时间。虽然不是每个人都同意这一点,但我们发现它有时很有用。
当我们进行故障转移时(敲木头,一年左右没有了),无状态客户端(例如 Web 服务)不会注意到,除非一次调用在错误的时间失败。请参阅我之前的陈述。