如果 AlwaysOn 可用性组中的一个数据库出现故障,是不是会启动故障转移?

Posted

技术标签:

【中文标题】如果 AlwaysOn 可用性组中的一个数据库出现故障,是不是会启动故障转移?【英文标题】:If one database is down in an AlwaysOn availability group, will failover be initiated?如果 AlwaysOn 可用性组中的一个数据库出现故障,是否会启动故障转移? 【发布时间】:2018-07-18 09:07:01 【问题描述】:

有一个配置了同步提交自动故障转移辅助副本的 AlwaysOn 主副本。如果可用性组的任何数据库关闭/损坏,是否会启动故障转移过程?

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

一般来说,是的。不过,AlwaysOn 和集群还有很多需要考虑的地方。它不适合胆小的人。此外,DownCorrupted 是两个不同的东西。

如果主副本出现损坏,特别是页面损坏,则自动页面修复将尝试从辅助副本恢复页面,反之亦然。您可以在 Microsoft 文档中了解 more about that here。重点关注文件头页、数据库引导页,以及GAP、SGAM、PFS页(分配页)不能自动修复。如果你有数据库损坏,你有一个大问题。立即给微软打电话……也许是follow this guide for what to do when you have corruption.

由于您使用的是同步提交,这是自动故障转移所必需的,如果存在处于健康同步状态的辅助副本,它将自动进行故障转移。这可以防止数据丢失,这是在异步提交配置中的手动故障转移以及数据库未同步的同步设置中的手动故障转移中发生的情况。

From the docs:

发生自动故障转移以响应导致 同步次要副本以转换为主要角色(使用 保证数据保护)。当以前的主副本变为 可用,它转换为次要角色。自动故障转移 要求主副本和目标辅助副本 副本在故障转移的同步提交模式下运行 模式设置为“自动”。此外,次要副本必须 已经同步,有 WSFC quorum,并且满足条件 由可用性组的灵活故障转移策略指定。

【讨论】:

以上是关于如果 AlwaysOn 可用性组中的一个数据库出现故障,是不是会启动故障转移?的主要内容,如果未能解决你的问题,请参考以下文章

AlwaysOn 可用性组中的数据库恢复为普通数据库

Always On 可用性组中的 MSDTC

SQL Server AlwaysOn架构及原理

SQL Server 2017 AlwaysOn AG 自动初始化

SQL 2014 AlwaysOn 搭建

SQL Server AlwaysOn部署