我已经设置了事务复制,并且由于带宽限制而允许从备份初始化(因此不会生成快照)。现在,当在数据库中插入数据的应用程序启动时,我们会在Publication数据库上出现此错误(好吧,它会运行很短的时间,然后会因错误而停止)。复制监视器不显示任何错误,因此发布和订阅数据库之间不一致。也不关心自动生成的ID(即使用Identity列),因为该表依赖于日期戳作为PK。错误是:
System.Data.SqlClient.SqlException:违反PRIMARY KEY约束''。无法在对象'dbo'中插入重复键。该语句已终止。
复制设置是否可以对源/发布数据库执行某些操作?这可能是由订户数据库的高延迟引起的吗?由于我没有在复制监视器中看到错误,我甚至不确定在继续复制设置时发生了这个错误。
我该如何解决这个问题?
1.确保使用PK中的复制设置创建要复制的表/文章
之前:
CREATE TABLE [dbo].[mytable](
[mytableID] [BIGINT] IDENTITY(1,1) NOT NULL,
后:
CREATE TABLE [dbo].[mytable](
[mytableID] [BIGINT] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
你也必须为外键做同样的事情
2.复制监视器应显示错误消息