SQL 2005 复制错误 - 升级 SP3

SQL 2005 复制错误 - 升级 SP3

我最近将我的 SQL 2005 服务器升级到了 SQL 2005 SP3。我已将 SQL 2005 复制到 SQL 2005,两者都是标准版。升级期间我没有遇到任何问题,并且已设置的复制继续正常工作。我最近尝试为新的测试帐户创建新的发布,但出现以下错误:

“发布‘TESTACCT’的并发快照不可用,因为它尚未完全生成,或者日志读取器代理未运行以激活它。如果并发快照的生成被中断,则发布的快照代理将停止运行”

我试图删除数据库上的复制。exec sp_replicationdboption @dbname = N'TESTACCT', @optname = N'publish', @value = N'false'

我重新创建了出版和订阅。

快照已成功创建,日志读取器代理正在运行。当我查看订阅同步状态时,我收到上述错误消息。我打开了日志记录,但没有看到任何突出的东西。

010-07-19 19:43:53.065 Microsoft SQL Server 日志读取器代理 9.00.4035.00 2010-07-19 19:43:53.065 版权所有 (c) 2005 Microsoft Corporation 2010-07-19 19:43:53.065 Microsoft SQL Server 复制代理:logread 2010-07-19 19:43:53.065 2010-07-19 19:43:53.065 输出行前面的时间戳以 UTC 时间表示。 2010-07-19 19:43:53.065 用户指定的代理参数值:-Publisher TEST-APP-DB -PublisherDB TESTTEST -Distributor TEST-APP-DB -DistributorSecurityMode 1 -Continuous -OutputVerboseLevel 2 -Output E:\Distribution_Agent2.log -XJOBID 0x046D19B54A2ACF43A7AD2BF20D05CAAF -XJOBNAME TEST-APP-DB-TESTTEST-15 -XSTEPID 2 -XSUBSYSTEM LogReader -XSERVER TEST-APP-DB -XCMDLINE 0 -XCancelEventHandle 00000440 -XParentProcessHandle 0000047C 2010-07-19 19:43:53.205 连接到 OLE DB TEST-APP-DB在数据源:'TEST-APP-DB',位置:'',目录:'TESTTEST',提供程序字符串:''使用提供程序'SQLNCLI'2010-07-19 19:43:53.221 OLE DB TEST-APP-DB:TEST-APP-DB DBMS:Microsoft SQL Server 版本:09.00.4053 目录名称:TESTTEST 用户名:dbo API 一致性:0 SQL 一致性:0 事务能力:1 只读:F 标识符引用字符:“non_nullable_columns:0 所有者使用情况:15 最大表名长度:128 最大列名长度:128 需要长数据长度:表中的最大列数:1000 索引中的最大列数:16 最大字符文字长度:131072 最大语句长度:131072 最大行大小:131072 2010-07-19 19:43:53.221 OLE DB TEST-APP-DB 'TEST-APP-DB': select is_srvrolemember('sysadmin'), is_member ('db_owner') 2010-07-19 19:43:53.221 OLE DB TEST-APP-DB 'TEST-APP-DB': select db_id() 2010-07-19 19:43:53.221 断开与 OLE DB TEST-APP-DB 'TEST-APP-DB' 的连接 2010-07-19 19:43:53.221 从代理配置文件获取的参数值:-pollinginterval 5000 -historyverboselevel 1 -logintimeout 15 -querytimeout 1800 -readbatchsize 500 -readbatchsize 500000 2010-07-19 19:43:53.237 连接到 OLE DB 发布服务器,数据源为:'TEST-APP-DB',位置为:'',目录为:'TESTTEST',提供程序字符串为:'',使用提供程序'SQLNCLI' 2010-07-19 19:43:53.237 OLE DB 发布服务器:TEST-APP-DB DBMS:Microsoft SQL Server 版本:09.00.4053 目录名称:TESTTEST 用户名:dbo API 一致性:0 SQL 一致性:0 事务能力:1 只读:F 标识符引用字符:“ non_nullable_columns:0 所有者用法:15 最大表名长度:128 最大列名长度:128 需要长数据长度:表中的最大列数:1000 索引中的最大列数:16 最大字符文字len:131072 最大语句 len:131072 最大行大小:131072 2010-07-19 19:43:53.237 OLE DB 发布者:TEST-APP-DB DBMS:Microsoft SQL Server 版本:09.00.4053 目录名称:TESTTEST 用户名:dbo API 一致性:0 SQL 一致性:0 事务能力:1 只读:F 标识符引用字符:“non_nullable_columns:0 所有者用法:15 最大表名长度:128 最大列名长度:128 需要长数据长度:表中的最大列数:1000 索引中的最大列数:16 最大字符文字长度:131072 最大语句长度:131072 最大行大小:131072 2010-07-19 19:43:53.237 OLE DB 发布者'TEST-APP-DB':选择 @@SERVERNAME 2010-07-19 19:43:53.237 连接到数据源'TEST-APP-DB'、位置:''、目录:'distribution'、提供程序字符串:'' 的 OLE DB DISTOLE,使用提供程序'SQLNCLI' 2010-07-19 19:43:53.237 OLE DB DISTOLE:TEST-APP-DB DBMS:Microsoft SQL Server 版本:09.00.4053 目录名称:分发用户名:dbo API 一致性:0 SQL 一致性:0 事务能力:1 只读:F 标识符引用字符:“ non_nullable_columns:0 所有者用法:15 最大表名长度:128 最大列名长度:128 需要长数据长度:表中的最大列数:1000 索引中的最大列数:16 最大字符文字长度:131072 最大语句长度:131072 最大行大小:131072 2010-07-19 19:43:53.237 OLE DB DISTOLE:TEST-APP-DB DBMS:Microsoft SQL Server 版本:09.00.4053 目录名称:分发用户名:dbo API 一致性:0 SQL 一致性:0 事务能力:1 只读:F 标识符引用字符:“ non_nullable_columns:0 所有者用法:15 最大表名长度:128 最大列名长度:128 需要长数据长度:表中的最大列数:1000 索引中的最大列数:16 最大字符文字长度:131072 最大语句长度:131072 最大行大小:131072 2010-07-19 19:43:53.237 OLE DB DISTOLE'TEST-APP-DB':从 master..sysservers 中选择数据源、srvid,其中 upper(srvname) = upper(N'TEST-APP-DB') 2010-07-19 19:43:53.237 OLE DB Publisher 'TEST-APP-DB': sp_MSgetversion 2010-07-19 19:43:53.252 状态:4096,代码:20024,文本:'正在初始化'。2010-07-19 19:43:53.252 代理正在运行。使用复制监视器查看此代理会话的详细信息。 2010-07-19 19:43:53.252 OLE DB DISTOLE'测试-APP-DB':sp_MSget_last_transaction @publisher_id = 0,@publisher_db = N'TESTTEST',@for_truncate = 0x0 2010-07-19 19:43:53.252 OLE DB DISTOLE'测试-APP-DB':sp_MSquery_syncstates 0,N'TESTTEST' 2010-07-19 19:43:53.252 OLE DB DISTOLE'测试-APP-DB':sp_MSget_last_transaction @publisher_id = 0,@publisher_db = N'TESTTEST',@for_truncate = 0x1 2010-07-19 19:43:53.252 发布者:{调用 sp_repldone(0x00022b330000086000a2、0x00022b330000086000a2、0、0)} 2010-07-19 19:43:53.252 发布者:{调用 sp_replcmds(500、0、0、、0、500000)} 2010-07-19 19:43:53.252 OLE DB DISTOLE'TEST-APP-DB':sp_MSget_last_transaction @publisher_id = 0,@publisher_db = N'TESTTEST',@for_truncate = 0x1 2010-07-19 19:43:53.252 发布者:exec sp_replcounters N'TESTTEST' 2010-07-19 19:43:53.252 OLE DB 发布者'TEST-APP-DB':exec sp_replcounters N'TESTTEST' 2010-07-19 19:43:53.252 状态:16384,代码:20007,文本:'没有可用的复制事务。'。 2010-07-19 19:43:58.252 发布者:{调用 sp_replcmds (500, 0, 0, , 5000, 500000)} 2010-07-19 19:44:03.252 发布者:{调用 sp_replcmds (500, 0, 0, , 5000, 500000)} 2010-07-19 19:44:08.268 发布者:{调用 sp_replcmds (500, 0, 0, , 5016, 500000)} 2010-07-19 19:44:13.268 发布者:{调用 sp_replcmds (500, 0, 0, , 5000, 500000)} 2010-07-19 19:44:18.268 发布者:{call sp_replcmds (500, 0, 0, , 5000, 500000)} 2010-07-19 19:44:23.268 发布者:{call sp_replcmds (500, 0, 0, , 5000, 500000)} 2010-07-19 19:44:28.268 发布者:{call sp_replcmds (500, 0, 0, , 5000, 500000)}

任何建议将不胜感激。

谢谢,布伦南

答案1

我从分发数据库的 MSsubscriptions 表中清除了有问题的记录。

从 dbo.MSsubscriptions 开始事务删除,其中 publisher_db = 'TESTDB'

从 dbo.MSsubscriptions 中选择 *,其中 publisher_db = 'TESTDB'

回滚/提交

相关内容