刚注册的,提个问题SQL Server 2005 SP2中的复制发布好像还挺复杂的。简单地说,现在配了个允许排队更新的日志发布,实现双向更新。
有一次把原来的订阅删除了,把订阅服务器改了个名字再新建了订阅,结果
就出错了。总说是 队列读取器代理 出错,总是提示说找不到原来的订阅,将中止。这个有办法解决吗?sp_subscription_cleanup什么的大概执行了一下也没什么效果。
附详细信息:
--------------------------------------------------------------------------------
SQL Server 2005 SP2错误消息:
将排队消息应用到发布服务器时失败 (源: MSSQL_REPL,错误号: MSSQL_REPL36046)
获取帮助: http://help/MSSQL_REPL36046 (当然啦,就是说没有任何帮助的意思!)日期 2008-6-3 9:41:42
日志 作业历史记录 ([server001].6)步骤 ID 2
服务器 server001
作业名称 [server001].6
步骤名称 运行代理。
持续时间 15.05:55:25
SQL 严重性 0
SQL 消息 ID 0
已通过电子邮件通知的操作员
已通过网络发送通知的操作员
已通过寻呼通知的操作员
重试次数 0消息
-DistributionDB distribution
-DistributorSecurityMode 1
-Continuous
-XJOBID 0x43C9C2E6DCBE764A9E2466864F3B5B86
-XJOBNAME [server001].6
-XSTEPID 2
-XSUBSYSTEM QueueReader
-XSERVER server001
-XCMDLINE 0
-XCancelEventHandle 00000F98
-XParentProcessHandle 000007B0
2008-06-18 07:36:54.843 已启动队列读取器代理 [server001].6 (Id = 1)
从代理配置文件获取的参数值:
-historyverboselevel 1
-logintimeout 15
-pollinginterval 5000
-querytimeout 1800
2008-06-18 07:37:07.609 队列读取器代理在连接“server001”上的
“datahouse”时遇到错误“该订阅已删除,无法更改发布服务器。
请用 sp_subscription_cleanup 来清除触发器。请确保正确定义了颁发和订阅,并确保
这两台服务器都在运行。
有一次把原来的订阅删除了,把订阅服务器改了个名字再新建了订阅,结果
就出错了。总说是 队列读取器代理 出错,总是提示说找不到原来的订阅,将中止。这个有办法解决吗?sp_subscription_cleanup什么的大概执行了一下也没什么效果。
附详细信息:
--------------------------------------------------------------------------------
SQL Server 2005 SP2错误消息:
将排队消息应用到发布服务器时失败 (源: MSSQL_REPL,错误号: MSSQL_REPL36046)
获取帮助: http://help/MSSQL_REPL36046 (当然啦,就是说没有任何帮助的意思!)日期 2008-6-3 9:41:42
日志 作业历史记录 ([server001].6)步骤 ID 2
服务器 server001
作业名称 [server001].6
步骤名称 运行代理。
持续时间 15.05:55:25
SQL 严重性 0
SQL 消息 ID 0
已通过电子邮件通知的操作员
已通过网络发送通知的操作员
已通过寻呼通知的操作员
重试次数 0消息
-DistributionDB distribution
-DistributorSecurityMode 1
-Continuous
-XJOBID 0x43C9C2E6DCBE764A9E2466864F3B5B86
-XJOBNAME [server001].6
-XSTEPID 2
-XSUBSYSTEM QueueReader
-XSERVER server001
-XCMDLINE 0
-XCancelEventHandle 00000F98
-XParentProcessHandle 000007B0
2008-06-18 07:36:54.843 已启动队列读取器代理 [server001].6 (Id = 1)
从代理配置文件获取的参数值:
-historyverboselevel 1
-logintimeout 15
-pollinginterval 5000
-querytimeout 1800
2008-06-18 07:37:07.609 队列读取器代理在连接“server001”上的
“datahouse”时遇到错误“该订阅已删除,无法更改发布服务器。
请用 sp_subscription_cleanup 来清除触发器。请确保正确定义了颁发和订阅,并确保
这两台服务器都在运行。
则估计是你遗漏了一些步骤, 检查下面的 T-SQL 执行的结果是否相同, 结果是否至少有一个与你的计算机名不同SELECT
@@SERVERNAME,
SERVERPROPERTY(N'ServerName')
如果是, 则说明你执行下面的 T-SQL 进行修正(注意修改脚本中的计算机名):DECLARE
@server_name sysname
SELECT
@server_name = name
FROM sys.servers
WHERE server_id = 0
IF @@ROWCOUNT > 0
EXEC sp_dropserver @server_name, 'droplogins'EXEC sp_addserver '你的计算机名', 'LOCAL'
现在主要是在 复制的发布服务器上始终有残留的队列数据,就是从原来的名称的订阅中传过来的更新数据,
怎么样把这些数据清除?或者让SQL忽略这些?
微软的提示是“请用 sp_subscription_cleanup 来清除触发器。请确保正确定义了颁发和订阅,并确保
这两台服务器都在运行”,关键是现在原来那个名称的订阅机器已经不存在了