1. 错误:已将此(这些)订阅标记为不活动,必须将其重新初始化。需要删除NoSync 订阅,然后重新创建它们
use distribution
go
--查找状态不正常的发布
select status,* from dbo.MSsubscriptions where status<>2
--修改状态
update dbo.MSsubscriptions set status=2 where status<>2
观察复制链是否能正常运行,正常后用tablediff比较发布链中的表数据是否一致
还可以重新初始化快照,但是数据量大就是个悲剧。
2. 错误:表、存储过程不存在以及表结构不一致等
处理方法:
a. 表或存储过程不存在:
在订阅端对应的库中补齐缺失的对象;
有一种比较奇怪的现象是订阅端表明明存在,但是同步链依然报错,此时可能有两种情况:
第一: 表字段不一致,可以参照下面(b)的方式补齐表字段;
第二: 表字段也一致,但是依旧报错,这时只能选碰碰运气,先停掉同步链,再开启,如果过了,
算运气好;如果错误依旧,就需要在该同步链中先将该表去掉,让其他数据能同步;然后再
将这个表新加到同步链中,并比较发布端和订阅端的表数据。
b. 列名'xxx' 无效
可以通过以下语句查找缺失的字段对应的表
--查找某个发布链中的某个字段(R

本文详细介绍了SQLServer发布订阅过程中遇到的各种错误,如表、存储过程不存在,主键冲突,登录失败等问题的处理方法,以及如何重新初始化快照。内容包括检查订阅状态,修复表结构不一致,处理主键冲突,调整数据库权限,解决I/O错误等,并提供了具体的SQL语句和操作步骤。
最低0.47元/天 解锁文章
2298

被折叠的 条评论
为什么被折叠?



