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;  

 

posted @ 2019-08-08 10:53  JinweiChang  阅读(367)  评论(0编辑  收藏  举报