复制相关问题,

时间:2010-06-28 06:53:55

标签: sql sql-server sql-server-2005 transactional-replication

与复制相关的问题,

我正在解释我的架构。

我创建了它的transactinal复制过程

  1. 2我在下面给出的桌面供应商脚本发布者
  2. 经销商
  3. 2名订阅者
  4. 数据复制设置如下:

      

    表VENDORS通过-Distributor从2个发布者复制到2个订阅者。

    在复制时,ERROR在Distributor数据库中发布为:

    在这里,必须发生的是

      

    Pub1(创建pubs表供应商) - >将(供应商)数据插入分销商。 - >订阅者拉

    现在发生的事情是,

      

    Pub1(创建pubs table vendors-done) - >在分发服务器数据库中引发错误

         

    复制 - 复制分发子系统:代理程序abc-serv1 \ PRD01-star-star Billing-PROD-VREPL1 \ REPL01-25失败。   违反PRIMARY KEY约束'PK_vendors'。无法在对象'dbo.vendors'中插入重复键。

    在发布者与分发者之间进行操作时发出错误。

1 个答案:

答案 0 :(得分:0)

使用事务复制时,必须在订阅服务器上维护发布服务器上的主键。听起来好像订阅者已经存在具有给定键值的记录。

从拓扑描述中,您有两个单独的出版物。

所以:

  • 订户1收到出版物1
  • 订阅者2收到出版物2

是否有任何交叉,即订阅者2也可以收到发布1.如果是,那么除非您管理两个发布者上的键范围或使用备用复制技术,例如合并复制,否则您将遇到主键冲突。