SQL 2005 复制错误

SQL 2005 复制错误

我正在尝试将我们的 SQL2005 事务复制环境中的最大事务保留期从默认的 72 小时更改为 120 小时。

通过 T-SQL 或 GUI 我收到以下消息:

消息 14294,级别 16,状态 1,过程 sp_verify_job_identifiers,第 25 行提供 @job_id 或 @job_name 来标识作业。

我正在运行的 T-SQL 如下:

sp_changedistributiondb @database ='distribution',@property ='max_distretention',@value = 120

有人有什么想法吗?

答案1

我认为下面的代码是失败的原因。我通过运行 sp_helptext sp_changedistributiondb 并查看存储过程调用 sp_verify_job_identifiers 来获得此信息。

看起来changeddistributiondb在运行sp_update_jobstep时更新分发清理代理作业时遇到了问题:

SELECT @command =  'EXEC dbo.sp_MSdistribution_cleanup @min_distretention = ' + 
                CONVERT(nvarchar(12), @new_min_distretention) + ', @max_distretention = ' +
                CONVERT(nvarchar(12), @max_distretention)
            EXEC @retcode = msdb.dbo.sp_update_jobstep @job_name = @agentname, @step_id = 1, 
                @command = @command

也许这项工作已被删除,或者发生了其他奇怪的事情,无论哪种情况,您都应该能够手动修改工作步骤。

编辑:清理代理在包含分发数据库的服务器上运行。它会删除复制历史记录,默认情况下每 10 分钟运行一次。该作业应如下所示:

姓名: 代理历史清理:分发
类别:REPL-历史清理
脚步:(1)运行代理
数据库:分配
**命令:**EXEC dbo.sp_MShistory_cleanup @history_retention = 48

相关内容