我有 2 节点 SQL Server 2019 FCI 群集,从一个节点故障转移到另一个节点最多需要 4 分钟。
该集群有 3 个用户数据库,是从较旧的 SQL Server 版本迁移而来的:
- 2 个具有较高负载的数据库具有 SIMPLE 恢复模型(且兼容性级别 100)
- 1 个数据库具有完整恢复模型(兼容级别 130)
更改恢复模型和/或提高兼容性级别是否会减少集群的故障转移时间?
不幸的是,我无法访问服务器,但检查日志绝对是我请求的第一件事。另外,我知道兼容性级别可能是影响故障转移时间的最后一个因素。但我无法找到任何有关 FCI 集群的恢复模型与故障转移时间关系的数据。
我担心使用 ADR 但在 Microsoft 的某个地方读到它是在 SQL Server 2019 中引入并在 SQL Server 2022 中改进的。也许当我在几年后进行下一次环境升级时。
一般来说,不,不是真的。恢复必须从最旧的检查点(ADR/CTR 的一些更改)开始,无论恢复模式如何,该检查点都必须位于日志中。
虽然 ADR/CTR 可能会有所帮助(仅当存在 ADR 兼容事务时才有帮助,其中日志在过去很长时间内有一个检查点或有许多打开的事务),但我们不知道大部分时间花在哪里,因此它是不确定有什么帮助。
时间都花在哪里了?集群迁移资源并上线需要多长时间?SQL 需要多长时间才能启动?数据库恢复(有问题的数据库)需要多长时间?数据库恢复的哪个阶段花费的时间最长?
一旦您掌握了事件的时间表并知道每个阶段花费了多少费用,就可以调查是否可能减少该阶段花费的时间。在那之前,一切都是随机猜测。
如果故障转移时间过长是由于恢复时间过长,请考虑更改数据库的目标恢复时间或配置加速数据库恢复。-大卫·布朗 - 微软