log备份异常 错误码 4215 及解决方法

上周末发现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组,后续的不需要修改按默认添加下去就好

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16131092/viewspace-2137897/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16131092/viewspace-2137897/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值