强制手动故障转移适用于节点之间仲裁失败,或者WSFC中的节点出现网断网,在短时间内无法恢复,线上的业务还急需访问数据库,需要强制启动数据库
后果就是副本节点的数据库全部失败,集群需要重做,为终极大招,慎放。
1、首先确定cluster的状态,SQL server 服务需要依赖于这个服务。
以管理员身份运行:
net.exe stop clussvc
net.exe start clussvc /forcequorum
强制启动Cluster Service 服务
2、强制启动alwayson可用性组
ALTER AVAILABILITY GROUP group_name FORCE_FAILOVER_ALLOW_DATA_LOSS
FORCE_FAILOVER_ALLOW_DATA_LOSS
Forcing failover, which might involve some data loss, is strictly a disaster recovery method. Therefore,
We strongly recommend that you force failover only if the primary replica is no longer running, you are willing to risk losing data,
and you must restore service to the availability group immediately.
操作完以上的2个步骤,数据基本上就处于可用状态了。但是后续的步骤更重要,是必须要做的。
首先要确定,线上的程序都连接到了已经恢复的机器,而不要连接其他的副本机器。如果其他节点的机器恢复了,程序没有做响应的处理,会同时操作2
个数据库实例,造成两个节点的库都对外提供服务,后面就没法合并数据了。
3、修改其他节点副本数据库为脱机状态,或者不可访问状态。
4、删除已经恢复的数据库实例,其他节点的同步。如果不删除数据库的日志会一直保留。