在我的生产服务器中,我的复制工作正常,我确实有分布式数据库,它是 2 个订阅者 db。我的数据是从生产环境复制的(工作正常),但是当数据被复制到订阅服务器中的分布式数据库时,它会引发错误
Err msg =
复制-复制分发子系统:PRD01-XYZ-VREPL1\REPL01-25 失败。违反 PRIMARY KEY 约束“PK_vendors”。无法在对象“dbo.tabname”中插入重复键。
在我的生产服务器中,我的复制工作正常,我确实有分布式数据库,它是 2 个订阅者 db。我的数据是从生产环境复制的(工作正常),但是当数据被复制到订阅服务器中的分布式数据库时,它会引发错误
Err msg =
复制-复制分发子系统:PRD01-XYZ-VREPL1\REPL01-25 失败。违反 PRIMARY KEY 约束“PK_vendors”。无法在对象“dbo.tabname”中插入重复键。
我有一段时间没有这样做了,但这是一个刺。
首先,我不介意看到不匹配的记录,所以我会尝试这样的事情:
--to be run on the publisher
select pub.*, sub.*
from
db_name1.dbo.tabname pub
JOIN linked_server_to_subscriber.db_name1.dbo.tabname sub
ON pub.pk = sub.pk
WHERE
pub.some_field != sub.some_field
希望对于“some_field”,有另一个独特的列,或者可能是一个 dt_entered,或者可能是一个 rowguid。:)。
最后,如果您的情况的逻辑涉及将记录插入订阅者表而不是通过复制,并且复制的类型不是合并,那么您很可能会继续遇到这样的问题。
祝你好运。