可用性组数据库卡在“不同步/恢复挂起”模式下


12

在SQL Server 2014 SP1(12.0.4422.0)实例中升级存储时,我们遇到了以下问题:重新启动SQL Server后,其中两个数据库无法在辅助数据库上启动。在我们安装新的(更大)SSD并将数据文件复制到新卷中时,服务器已脱机几个小时。当我们重新启动SQL Server时,除两个数据库外,所有其他数据库再次开始同步。另外两个在SSMS中显示为“ 未同步/正在等待恢复”

SSMS不同步/恢复挂起

之前有类似的“ 不同步/恢复中”问题,我检查了“可用性组”->“可用性数据库”部分下的状态,但是它们显示为红色X:

可用性组,可用性数据库

甚至试图暂停数据移动都会产生错误消息:

无法挂起数据库“ StackExchange.Bycycles.Meta”中的数据移动,该数据库位于可用性组“ SENetwork_AG”中的可用性副本“ ny-sql03”上。(Microsoft.SqlServer.Smo)

附加信息:执行Transact-SQL语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)

由于文件不可访问或内存或磁盘空间不足,无法打开数据库“ StackExchange.Bycycles.Meta”。有关详细信息,请参见SQL Server错误日志。(Microsoft Sql Server,错误:945)

我检查了文件是否存在,没有任何权限问题。我还检查了管理下SSMS中的SQL Server日志,但是没有看到有关挂起恢复或两个数据库有任何问题的信息。

在寻求帮助的过程中,我找到了两篇不同的文章,说需要还原数据库。

当数据库卡在恢复挂起中时,是否有任何方法可以在辅助数据库上恢复数据复制?

Answers:


16

由于服务器已脱机一段时间,我们认为它可能已超出主服务器的恢复范围。我们决定尝试在数据库上应用最新的事务日志,以查看这是否可以启动恢复过程:

-- Remove database from Availability Group:    
Alter Database [StackExchange.Bicycles.Meta] SET HADR OFF;

-- Apply t-logs to catch up. This can be done manually in SSMS or via:
RESTORE LOG [StackExchange.Bicycles.Meta] FROM DISK = '\\ny-back01\backups\SQL\_Trans\SENetwork_AG\StackExchange.Bicycles.Meta\StackExchange.Bicycles.Meta_LOG_20160217_033201.trn' WITH NORECOVERY;

-- Re-join database to availability group
ALTER DATABASE [StackExchange.Bicycles.Meta] SET HADR AVAILABILITY GROUP = [SENetwork_AG];
ALTER DATABASE [StackExchange.Bicycles.Meta] SET HADR RESUME;

在两个服务器的辅助服务器上运行上述操作之后,它们就可以再次开始同步。

更新:我们有一个类似的问题,在手动AG故障转移后,新的主副本上的数据库之一卡在“ 不同步”模式下(在重新启动SQL Server之后切换到“ 不同步/正在等待恢复”),并且上述步骤可以解决该问题以及。


1

您可以从AAG删除数据库,在主节点上进行完整备份和事务备份,在辅助节点的DB上还原这两个备份,然后将数据库再次添加到AAG。此时,这可能表明辅助节点数据库未同步,但只是按照第二个答案中的建议进行操作(购买被惩罚的方式-2),我的意思是将辅助节点移至主节点,它将对其进行修复。


-2

下次,尝试将主节点故障转移到“不同步”的辅助节点,然后再次返回。现在应该同步辅助节点。


3
这是一个可怕的建议。
arcain

此建议可能会导致数据丢失
Aleksey Vitsko
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.