随笔 - 74  文章 - 0  评论 - 94  阅读 - 12万

跳过事务复制中的错误

前些天部署了一套事务复制环境,订阅端只需要最近五年的数据。

复制采用的是备份文件初始化,复制搭好后用了一个脚本在订阅端删除五年前的数据。

今天早上复制出问题了。出现了The row was not found at the Subscriber when applying the replicated command.的错误

导致堆积了大量的未分发命令。

--------------------------------------------------------------------------------------------------------------------------

解决方案1):

根据http://technet.microsoft.com/en-us/library/ms151331(v=sql.105).aspx

在分发数据库上运行:

sp_helpsubscriptionerrors [ @publisher = ] 'publisher'
        , [ @publisher_db = ] 'publisher_db'
        , [ @publication = ] 'publication'
        , [ @subscriber = ] 'subscriber'
        , [ @subscriber_db = ] 'subscriber_db'

找到返回值中最大的xact_seqno

之后在订阅端数据库上运行:

sp_setsubscriptionxactseqno [ @publisher = ] 'publisher'
        , [ @publisher_db = ] 'publisher_db'
        , [ @publication = ] 'publication'
        , [ @xact_seqno = ] xact_seqno

但是,如果再次出现同样的问题,还得重复同样的步骤来忽略错误。

--------------------------------------------------------------------------------------------------------------------------

解决方案2):

通过在分发代理配置文件中设置Continue On Data ConsistencyErrors,直接跳过事务复制中的错误。(因为我根本就不关心5年前的数据的变更)

posted on   万剑齐发  阅读(385)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2014-03-27 T-SQL查询两个日期之间的休息日(周六周日)天数
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示