我在SQL服务器之间设置了事务复制PULL类型。 但是,我的分发清理作业不是从MS_replCommands和repltransaction表中删除任何数据。
我已将Immediate_Snyc和allow_anonymous设置为0。
分配工作明细:
查询: EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0,@ max_distretention = 72
JOB结果: 以用户身份执行:NT SERVICE \ SQLSERVERAGENT。在0秒(0行/秒)内删除了0个由0个语句组成的复制事务。 [SQLSTATE 01000](消息21010)。这一步成功了。
注意:当我将Immediate_Snyc设置为1并尝试然后它可以工作,但为什么不使用0,因为在其他服务器上我设置了0并且它正在工作。
请帮帮我。
答案 0 :(得分:0)
奇怪 - 预期的行为是,如果immediate_sync为“true”,则分发数据库将保留设置的最大保留期的事务数据,以便当前和任何新订阅者可以获得必要的基线快照+事务。 “跟上来”。您希望分发数据库保存最长保留期的数据(在您的情况下为72小时)。
如果设置为“false”,则任何新订户都需要新的快照,但清理作业将从分发数据库中清除任何分布式命令。
仔细检查所有订阅者是否正在接收交易,您是否启用了匿名订阅?