【问题标题】:Replication related issue,复制相关问题,
【发布时间】:2010-06-28 06:53:54
【问题描述】:

复制相关问题,

我正在解释我的架构。

我已经创建了,它的事务复制过程

  1. 2 Publisher on table vendor 脚本我在下面给出,
  2. 经销商
  3. 2 个订阅者

数据复制设置如下:

表供应商通过分销商从 2 个发布者复制到 2 个订阅者。

复制时,在 Distributor 数据库中发出的错误为:

在这里,必须发生的是

Pub1(创建 pubs 表供应商)-> 向 Distributor 插入(供应商)数据。 -> 订阅者拉取

对我来说现在发生的事情是,

Pub1(创建 pubs 表 vendor-done)-> 在分销商数据库中引发错误

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

Publishers 与 Distributor 之间进行操作时发出错误。

【问题讨论】:

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


    【解决方案1】:

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

    根据您的拓扑描述,您有两个独立的出版物。

    所以:

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

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

    【讨论】:

    • 没有交叉,并且订阅者没有条目,在分发过程本身它会抛出错误。主要目标是我有一个名为 ABC_tab_repilca 的表,它作为身份,PK 值,它必须通过事务副本复制,我的 envi 必须是我指定的,2 pub - 2 sub 使用分发数据库,​​表 ABC_table_replica 中的任何操作必须从复制pub-1 到 sub-1 和 pub2 到 sub-2。出现的问题是为 PUB=1 创建发布并在分发中创建,再次在分发中输入 PUB=1 条目,这可能会引发 PK 违规错误。
    • 我需要的是表名:ABC_tab_replica - 包含它有PK的记录,标识值:1. 为该表创建的PUB = 2 ABC_tab_replica 使用事务方法,通过分布式数据库2. SUB = 2 创建为此表 ABC_tab_replica ABC_tab_replica 表必须包含主库和副本库的数据同步
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2022-09-24
    • 2016-05-04
    • 1970-01-01
    • 2011-07-31
    • 2013-01-09
    • 2012-02-02
    相关资源
    最近更新 更多