Gre*_*ray 16 sql-server recovery availability-groups
在升级 SQL Server 2014 SP1 (12.0.4422.0) 实例中的存储时,我们遇到了一个问题,即在重新启动 SQL Server 后,两个数据库无法在辅助数据库上启动。当我们安装新的(更大的)SSD 并将数据文件复制到新卷时,服务器已离线几个小时。当我们重新启动 SQL Server 时,除了两个数据库之外的所有数据库再次开始同步。另外两个在 SSMS 中显示为Not Synchronizing / Recovery Pending。
之前遇到过类似的Not Synchronizing / In Recovery问题,我检查了 Availability Groups -> Availability Databases 部分下的状态,但它们显示了一个红色的 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 日志,但没有看到任何有关挂起恢复或两个数据库的任何问题的信息。
当数据库卡在 Recovery Pending 中时,有什么方法可以在辅助节点上恢复数据复制?
Gre*_*ray 20
由于服务器已离线一段时间,我们认为它可能已超出主服务器的恢复窗口。我们决定尝试在数据库上应用最新的事务日志,看看这是否会启动恢复过程:
-- 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;
Run Code Online (Sandbox Code Playgroud)
在两个数据库的辅助服务器上运行上述内容后,他们能够再次开始同步。
更新:我们有一个类似的问题,在手动 AG 故障转移后,新主副本上的一个数据库卡在不同步模式(重新启动 SQL Server 后切换到不同步/恢复挂起),上述步骤可以解决这个问题问题。
| 归档时间: |
|
| 查看次数: |
33291 次 |
| 最近记录: |