上周末发现db02组的alwayson 同步异常,所以权衡了各个方法后决定采用重新加载DYY数据库的方式来修复异常。
但是当在主库上执行全备和log备的操作时,发现以下的错误信息。
The log was not truncated because records at the beginning of the log are pending replication. Ensure the Log Reader Agent is running or use sp_repldone to mark transactions as distributed.
当时的log已增长到了380G,且无法trancate,这样就造成了同步后的从库上的lsn异常,无法再重新加载DYYdb的alwayson。
网上搜索了一下资料,找到了以下的解决方法
--run
sp_replicationdboption 'DYYdb','publish','true'
--then run sp_repldone with the following parameters
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
--then unpublish the database
sp_replicationdboption 'DYYdb','publish','false'
--Run
dbcc traceon(3604)
dbcc opentran --- against the database to ensure there are no replicated transactions.
这时可以看到结果中会显示还有活动的transaction连接在DYYdb上
而这就引起了开头备份log文件时所遇到的错误。
kill 掉这个Session。
注意:由于我们的数据库有开启Log备份,请确认将log备的job停止后在做log的备份,不然将会导致加载到AG组失败。
另外如果我们的cdc在备份时出于综合考虑而关闭,之后需要用 sp_replflush 来开启,
否则重新启用Cdc job后会得到以下的错误:
消息
已以用户 SH-DM-DB03\dba_monitor 的身份执行。 另一个连接已经在当前数据库中为变更数据捕获运行 'sp_replcmds'。
[SQLSTATE 42000] (错误 22903) 数据库 'DYYdb' 的捕获作业对 sp_MScdc_capture_job 的调用失败。请查看当前会话中的以前错误以确定原因。
[SQLSTATE 42000] (错误 22864)
后续的步骤请参照附件中的3.2, 3.3完成数据库的备份和恢复后,右击添加数据库将DYYdb重新加到AG组,后续的不需要修改按默认添加下去就好
log备份异常 错误码 4215 及解决方法
来源:这里教程网
时间:2026-03-02 11:07:32
作者:
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- SQLSERVER数据库状态揭秘
SQLSERVER数据库状态揭秘
26-03-02 - SQL SERVER运维日记--备份
SQL SERVER运维日记--备份
26-03-02 - Ubuntu高可用监控部署指南(手把手教你配置Keepalived实现Linux服务器高可用性)
- 屏蔽机房壳体龙骨安装焊接教程
屏蔽机房壳体龙骨安装焊接教程
26-03-02 - NTP时间服务器,为安防监控系统保驾护航
NTP时间服务器,为安防监控系统保驾护航
26-03-02 - 高清视频监控系统基本组成
高清视频监控系统基本组成
26-03-02 - 深入理解 SQL Server 2008 的锁机制
深入理解 SQL Server 2008 的锁机制
26-03-02 - 新建可用性组的正将TEST连接到XXXX上的可用性组TAG01报错和解决--alwayson搭建踩的坑
- SQL SERVER数据库收缩最佳实践
SQL SERVER数据库收缩最佳实践
26-03-02 - SQLServer执行存储过程失败(sys.xp_cmdshell)问题处理
