在创建事务复制时,使用备份还原初始化常见错误

在创建事务复制时,使用备份还原初始化常见错误

问题1:

错误: 14151,严重性: 18,状态: 1。

Replication-复制分发子系统: agent test-DB-TDB1-tdb1-test-DB\MSSQLSERV-299 failed. 进程无法访问服务器“test-DB\MSSQLSERVERA”上的数据库“TDB1”。


解决:产生这个错误的原因是因为使用请求订阅或远程分发服务器时,复制账号test\SqlReplicator(域账号),没有对订阅数据库TDB1有访问的权限,要赋予sysadmin,ower权限,保证复制分发账号有相应的权限,日志代理服务器才能正常启动


问题2:

建立连接时,发生了与网络相关的或特定于实例的错误。找不到或无法访问服务器。请检查实例名称是否正确以及 SQL Server 是否已配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。 (源: MSSQLServer,错误号: 10061)

解决:1)在“方面”下接列表框中,选择“服务器配置,“RemoteAccessEnabled”属性和”RemotoDacEnabled”设为“True”,点“确定”。

 2)在“方面”下接列表框中,选择"SQLServer外围应用配置器","AdHocRemoteQuriesEnabled" 设为“True”,"CltIntegrationEnabled" 设为“True”,“DatabaseMailEnabled” 设为“True”,“RemoteDacEnabled” 设为“True”,点“确定”



问题3:

使用备份还原初始化,事务复制。自增表如下报错:当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表 'test_store' 中的标识列指定显式值。


分析:由于表test_store有自增列,导致复制是报错,默认情况(sql server 2008R)自增表自增列不会被同步,但是发现生产环境中,另外一个表testchaine表有触发器(insert,update,delete)调用了test_store表,这时候即使在初始化复制过程中不同步该test_store表,也会报错:test_store 无效对象。如何解决呢?

解决:只能删除testchain表中增删改触发器,删除后日志代理器正常