我总是在4个节点集群上运行的组。每个DC都有两个节点运行在上面。
在进行DR测试时,我们在DC1上运行节点,我试图在node3 (同步副本)上引入始终打开的组,但是当我尝试故障转移时,它会给出数据丢失的信息。如果我手动将数据转移到node3,即使它被设置为同步副本,它是否会丢失数据?
发布于 2020-11-17 22:28:55
在进行DR测试时,我们将运行在DC1上的节点减少。
关闭主服务器通常会导致同步AG的自动故障转移。但是,您还关闭了为自动故障转移配置的唯一其他同步辅助程序。这使AG处于没有主服务器的情况下,这需要强制手动故障转移。来自对“始终可用”组(服务器)执行强制手动故障转移:
如果当WSFC集群具有健康仲裁时,主副本变得不可用,则可以强制故障转移(可能导致数据丢失)到角色处于辅助或解析状态的任何副本。如果可能,强制将故障转移到在主副本丢失时同步的同步提交辅助副本。
强制手动故障转移总是会警告可能的数据丢失。您需要采取那篇文章中概述的步骤,以确保避免数据丢失。请参阅强制仲裁后避免数据丢失的潜在方法一节。
您处于“如果同步同步提交辅助副本在线”的情况。您需要检查属于这个AG的每个数据库的is_failover_ready列(在sys.dm_hadr_database_replica_cluster_states DMV中)。如果它们都是1,则可以强制进行故障转移而不会丢失数据。
另一种可能是,由于node3位于DR数据中心(DC2),该可用性组(AG)中的一个或多个数据库不处于SYNCHRONIZED状态。
即使node3被配置为同步副本,它也可能落后于主副本,然后被认为没有准备好进行故障转移。您应该能够在AG仪表板中观察到这一点,特别是数据库列表中的“故障转移就绪”列。在尝试故障转移之前,他们都应该说“没有数据丢失”。

在启动故障转移之前,您需要等待node3来“赶上”主服务器(同步)。
https://dba.stackexchange.com/questions/279847
复制相似问题