16.5 故障转移
16.5.1 故障转移模式
在新建可用性组时,默认不选择“自动故障转移”和“同步提交”,可以根据实际业务的需求指定“自动故障转移”(最多可指定2个副本)和“同步提交”(最多可指定3个副本)。
与数据库镜像的可用性模式类似,AlwaysOn 可用性组可以有以下3种高可用模式可供选择。
(1)自动故障转移和同步提交。选择了“自动故障转移”,则系统将自动同时选择“同步提交”。此副本将使用同步提交可用性模式,同时支持自动故障转移和手动故障转移,不会丢失数据。
(2)手动故障转移和同步提交。即仅选择“同步提交”。此副本将使用同步提交可用性模式,仅支持手动故障转移,不会丢失数据。
(3)手动故障转移和异步提交。即“自动故障转移”和“同步提交”都不选择。此副本将使用异步提交可用性模式,且只支持强制故障转移(可能丢失数据)。
在可用性组的“属性”中,也可以编辑“可用性模式”和“故障转移模式”。如果“故障转移模式”设置为“自动”,但“可用性模式”不会自动设置为“同步提交”,需要手动确认。
对于同步提交的辅助副本,其同步状态将显示为“已同步”,对于异步提交的辅助副本,其同步状态则显示为“正在同步”。
16.5.2 自动故障转移
检测到主副本发生故障后,故障转移群集服务将自动转移到“故障转移模式”为“自动”的辅助副本。
16.5.3 手动故障转移
在 SSMS 中选择一个可用性组,然后在右键菜单中选择“故障转移”。在“显示面板”中也有“启动故障转移向导”的链接。
上述操作,脚本为:
--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE. :Connect SQLSVR2 ALTER AVAILABILITY GROUP [HAGroup01] FAILOVER; GO |
16.5.4 强制转移
遇到主副本发生故障,而自动故障转移又不能成功时,可能需要强制将某个辅助副本提升为主副本。
需要在辅助副本上执行以下脚本。这个操作可能会造成数据丢失,请谨慎使用。
ALTER AVAILABILITY GROUP [HAGroup01] FORCE_FAILOVER_ALLOW_DATA_LOSS; |
强制切换之后,新的主副本上数据库显示为“已同步”,其他辅助副本上数据库则显示为“未同步”。
强制转移后,当辅助副本重新联机后,可以分别在辅助副本上运行以下脚本,同步数据更新。
ALTER DATABASE [SQLDB01] SET HADR RESUME; ALTER DATABASE [SQLDB02] SET HADR RESUME; |
上述脚本执行成功后,辅助副本上的数据库状态将显示为“已同步”(同步提交模式)或“正在同步”(异步提交模式)。