SQL SERVER-AlwaysonResolving
虽然2台都是同步提交,自动failover模式
在辅助副本的AG中先删掉一个可用DB,然后关闭主副本,之后辅助副本变为下图。不能自动failover。
重新开启主副本后,主副本显示一切正常
但是辅助副本除了删掉的那个DB,其他都恢复正常。
在辅助副本上AG中一个DB数据同步挂起,然后关掉主副本,辅助副本如下,依然不能自动failover,只是那个DB状态变为了Not Synchronizing.
手动强制切换failover,但是最后不成功报错,那么这种情况,如何failover辅助副本让没有故障的DB上线提供服务呢?
强制failover:
USER MASTER
GO
ALTER AVAILABILITY GROUP [SDSDBT-SDAG] FORCE_FAILOVER_ALLOW_DATA_LOSS
强制切换后,状态正常的DB没有丢数据,非正常的可能丢了数据,
主副本重新启动后,正常态的DB可以resume继续同步,不行的就只能重新加入AG同步了。
强制切换步骤总结
1.
net.exe stop clussvc --强制无仲裁启动集群服务 net.exe start clussvc /forcequorum
2.Disable&Enable AlwaysOn Availability Groups
3
--强制failover USE MASTER GO ALTER AVAILABILITY GROUP [SDSDBT-SDAG] FORCE_FAILOVER_ALLOW_DATA_LOSS
在SSMS不管用的情况下使用一些指令
--在辅助副本上将DB提出AG ALTER DATABASE test2 SET HADR OFF; GO --在辅助副本上将DB加入AG alter database test2 set hadr availability group = "SDSDBT-SDAG"; --曾遇到在SSMS中主副本上DB没有提出AG的功能所以只能使用此语句,在主副本上将DB提出AG ALTER AVAILABILITY GROUP [SDSDBT-SDAG] REMOVE DATABASE test2;