原文: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. springMVC返回json数据乱码问题及@RequestMapping 详解

    原文地址:https://blog.csdn.net/u010127245/article/details/51774074 一.@RequestMapping RequestMapping是一个用来 ...

  2. [NPM] Use a shorthand syntax for running multiple npm scripts with npm-run-all

    Running multiple scripts in series or in parallel can become very verbose. Using a tool such as npm- ...

  3. [Redux] Avoid action type naming conflicts

    In redux, the action type is just a normal string type, it is easy to get naming conflicts in large ...

  4. 【codeforces 750D】New Year and Fireworks

    time limit per test2.5 seconds memory limit per test256 megabytes inputstandard input outputstandard ...

  5. Gini 系数与熵的关系

    首先来看二者的基本定义: ⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪H(X)=−∑k=1KpklnpkGini(X)=∑k=1Kpk(1−pk) 将 f(x)=−lnx 在 x=1 处进行一阶泰勒展开(忽略高阶无穷小 ...

  6. MySQL分区表使用方法

    原文:MySQL分区表使用方法 1. 确认MySQL服务器是否支持分区表 命令: show plugins; 2. MySQL分区表的特点 在逻辑上为一个表,在物理上存储在多个文件中 HASH分区(H ...

  7. 把搜狗输入法词库导入Google拼音输入法

    为PC端Google拼音输入法增加词库 为什么折腾词库 都在说百度.讯飞等输入法上传用户词库,为了安全建议大家使用google输入法之类,话说回来,要想使用智能联想功能是不是就得把你输入习惯放在他的里 ...

  8. WinFrom - 打开一个窗体关闭另一个窗体

    在写Winform程序的时候,经常会遇到“打开一个新的窗体然后关闭本窗体”之类的问题.最常见的就是登陆界面和主窗体了.而最常见的处理方法就是表单判断正确后 new MainForm().Show(); ...

  9. Go 在 Windows 上用户图形界面 GUI 解决方案 Go-WinGUI 国产(使用cef 内核)

    Go 在 Windows 上用户图形界面 GUI 解决方案 Go-WinGUI 国产 Go 在服务端的优势不容置疑,但是在桌面应用上却没有好的 GUI 支持,本项目是 Go 语言在 Windows 上 ...

  10. C++中的类与对象模型

    一,C/C++内存模型 1.内存模型分类 栈区:由编译器自动分配和释放,用来存放函数的参数,局部变量.存放在栈中的数据只在当前函数及下一层函数中有效,函数一旦结束,这些数据就被释放了. 堆区:由程序员 ...