SQL Server ->> AlwaysOn高可用副本同步失败
2021/10/28 2:09:59
本文主要是介绍SQL Server ->> AlwaysOn高可用副本同步失败,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前段时间我们生产环境有台alwayson高可用副本挂了,一开始是发现数据库账号不能登录,以为是密码过期,登录到副本上面发现数据库同步中断。
这个时候肯定第一时间是先查下SQL SERVER日志看下是什么报错原因引起的。
然后在SQL SERVER日志里面找到凌晨2点15分30秒的时候目标数据库有一条错误日志,提示Always On Availability Groups data movement for database 'xxxx' has been suspended for the following reason: "system" (Source ID 2; Source string: 'SUSPEND_FROM_REDO'). To resume data movement on the database, you will need to resume the database manually. ,紧接着的一条日志 During redoing of a logged operation in database 'XXXX' (page (1:9) if any), an error occurred at log record ID (372842:430056:1). Typically, the specific failure is previously logged as an error in the operating system error log. Restore the database from a full backup, or repair the database.
第一条日志提示日志redo中断,第二条日志直接指出哪条日志的redo失败。
也就是SQL SERVER卡着这条log的redo上面,所以数据库进入Not Synchronizing状态。
后面我们是按照常规的做法,ALTER DATABASE XXX SET HADR RESUME尝试恢复数据库。
这是常规微软推荐的做法,让数据库尝试自然恢复。
但是执行完命令后,第一时间打开windows 事件查看器查看下MSSQLSERVER日志提示,还是提示无法redo (372842:430056:1)。也就是SET HADR RESUME没办法恢复数据库。
其实这个问题发生过不止一次,这算是第二次了吧。后来我们咨询了微软(我们的服务器是Azure云,SQL SERVER是RDS版),微软的工程师让我们把SQL SERVER服务重启就行。
两次都是重启SQL SERVER解决问题,只是日志redo的时间会比较久。
重启SQL SERVER后刷新一下SQL SERVER 日志,看到有提示数据库在恢复中。
随后提示恢复完成
然后注意通过监控脚本观察副本的同步状态以及剩余redo日志,只要有变化,剩余redo日志在减少,就说明恢复成功。
这篇关于SQL Server ->> AlwaysOn高可用副本同步失败的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-08Docker下的SqlServer发布订阅启用
- 2023-06-05Docker安装MS SQL Server并使用Navicat远程连接
- 2023-05-25深入浅出 SQL Server CDC 数据同步
- 2023-05-12通过空间占用和执行计划了解SQL Server的行存储索引
- 2023-04-24以SQLserver为例的Dapper详细讲解
- 2022-11-30SQL server高级函数查询
- 2022-11-26SQL SERVER数据库服务器CPU不能全部利用原因分析
- 2022-11-21SQL Server 时间算差值/常用函数
- 2022-11-20调试Archery连接SQL Server提示驱动错误
- 2022-10-22SQL Server 完整、差异备份+完整、差异还原(详细讲解,规避错误)