原文:SqlServer 可更新订阅队列读取器代理错误:试图进行的插入或更新已失败

今天发现队列读取器代理不停地尝试启动但总是出错:

其中内容如下:

队列读取器代理在连接“PublicationServer”上的“pubDB”时遇到错误“试图进行的插入或更新已失败,
原因是目标视图或者目标视图所跨越的某一视图指定了 WITH CHECK OPTION,
而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。”。
请确保正确定义了分发和订阅,并确保这两台服务器都在运行。

可能是刚处理过的另一个问题引起的(此处不提)。

队列读取器的是读取订阅数据库的数据,往发布数据库插入数据。上面的提示就是这个原因。

因为发布数据库有2个订阅分库,不清楚是从哪个数订阅据库来的数据引起的。

所以在2个订阅数据库中执行以下代码,查看哪个的记录是不变的:

SELECT *  FROM [subDBName].[dbo].[MSrepl_queuedtraninfo] order by maxorderkey asc

运行几次查看输出结果,如果第一条记录一直不变,且总记录数量只增不减,说明订阅到发布的队列堵在了这一条记录!

解决方法:

在此订阅库把这条事务从排队事务中删除!不过该条事务就没有同步回发布数据库了。

SELECT * FROM [Platform].[dbo].[MSrepl_queuedtraninfo] WHERE tranid='9XSM<<JS713^aHXKJY5SQ=5---0KG---'
SELECT * FROM [Platform].[dbo].[MSreplication_queue] WHERE tranid='9XSM<<JS713^aHXKJY5SQ=5---0KG---' DELETE FROM [Platform].[dbo].[MSrepl_queuedtraninfo] WHERE tranid='9XSM<<JS713^aHXKJY5SQ=5---0KG---'
DELETE FROM [Platform].[dbo].[MSreplication_queue] WHERE tranid='9XSM<<JS713^aHXKJY5SQ=5---0KG---'

但是具体什么语句或设置引起的“WITH CHECK OPTION”,有待查看。

SqlServer 可更新订阅队列读取器代理错误:试图进行的插入或更新已失败的更多相关文章

  1. 队列读取器代理 遇到错误 Row handle is invalid

    原文:队列读取器代理 遇到错误 Row handle is invalid 今天测试在发布中更改表名称,在发布数据库更改后重新发布这个表. 但是原来的表在订阅没有删除,不小心插入数据到原表中,队列读取 ...

  2. SqlServer 可更新订阅升级字段队列数据丢失原因

    原文:SqlServer 可更新订阅升级字段队列数据丢失原因 之前简单描述过数据冲突发生的原因:SQLServer可更新订阅数据冲突的一个原因 ,但具体内部原理是怎么丢失的还不清楚,今天补充说明.可更 ...

  3. SqlServer 使用脚本创建分发服务及事务复制的可更新订阅

    原文:SqlServer 使用脚本创建分发服务及事务复制的可更新订阅 [创建使用本地分发服务器] /************************[使用本地分发服务器配置发布]*********** ...

  4. sqlserver关于发布订阅replication_subscription的总结

    (转载)sqlserver关于发布订阅replication_subscription的总结 来自 “ ITPUB博客 ” ,原文地址:http://blog.itpub.net/30126024/v ...

  5. SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)

    原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC) 在可更新订阅中,在订阅设置更新方法,将 "排队更新" 设置为 " ...

  6. SQLServer 可更新订阅数据在线架构更改(增加字段)方案

    原文:SQLServer 可更新订阅数据在线架构更改(增加字段)方案 之前一直查找冲突发布和订阅数据不一致的原因,后来发现多少数据库升级引起,因为一直以来都是在发布数据库增加字段,订阅也会自动同步.在 ...

  7. SQLServer 可更新订阅数据冲突的一个原因

    原文:SQLServer 可更新订阅数据冲突的一个原因 可更新订阅为什么有冲突? 可更新订阅中,当升级增加一个字段时,通常在发布服务器的发布数据库中增加,对表增加字段后,发布自动同步到订阅数据库中(复 ...

  8. 最简单的SQLserver,发布订阅教程,保证一次就成功

    最简单的SQLserver,发布订阅教程,保证一次就成功 发布订阅用来做数据库的读写分离,还是很好用的 当单台数据库的压力太大时,可以考虑这种方案,一主多从,主服务器的数据库只管写入,其他的数据库都是 ...

  9. SQL Server 可更新订阅中有行筛选的同步复制移除项目而不重新初始化所有订阅!

    原文:SQL Server 可更新订阅中有行筛选的同步复制移除项目而不重新初始化所有订阅! 在可更新订阅的同步复制中,有行筛选的项目表,移除的时候会提示重新初始化所有的快照并且应用此快照,这将导致所有 ...

随机推荐

  1. Java中的浮点数-科学计数法-加减乘除

    上次,提到"元转分"这个浮点数问题,boss倾向于手动把1.23元这种格式,转换成123分.    但实际上,浮点数很容易遇到精度问题.    比如,System.out.prin ...

  2. erlang lists

    http://blog.csdn.net/dp0304/article/details/7590233 一,带函数Pred1, all(Pred, List) -> boolean()如果Lis ...

  3. XSS攻击之基础篇:HTML标签与字符串的渲染

    <body> XSS攻击之基础篇:HTML标签与字符串的渲染 测试 <div class="a1"> </div> <div class= ...

  4. mac下通过brew安装的Nginx在哪

    反正我的是在/usr/local/etc下,看网上的资料似乎都不太一样. 一些常用nginx命令 nginx -s reload :修改配置后重新加载生效 nginx -s stop :快速停止ngi ...

  5. VS2017 安装过程

    2017 安装过程 工欲善其事必先利其器 Visual Studio 2017 正式版官方下载地址:https://www.visualstudio.com/downloads/ 安装vs2017的时 ...

  6. Struts2——(8)struts2中文件的上传

    通过2种方式模拟单个文件上传,效果如下所示 开发步骤如下: 1.新建一个web工程,导入struts2上传文件所需jar,如下图 目录结构              2.新建Action  第一种方式 ...

  7. jQuery中的Deferred和promise

    promise:http://www.alloyteam.com/2014/05/javascript-promise-mode/ 1 jQuery 中的 Deferred 和 Promises : ...

  8. CCLink

    1什么是CC-Link? CC-Link全称Control & Communication Link,即控制与通信链路通信,是一种可以同时高速处理控制和信息数据的现场网络系统,可以提供高效.一 ...

  9. Java设计模式透析之 —— 单例(Singleton)

    写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问题,项目上线后还可以帮助你分析数据.但是Java原生带有的System.out.println()方法却很少在真正的项目开发中使用,甚至像f ...

  10. 熟知MySQL存储过程

    存储过程(Stored Procedure)是一组为了完毕特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给定參数(假设该存储过程带有參数)来调用运行它. MySQL 存储 ...