Job列表:
Replication Agents Checkup (复制代理审查)
Reinitialize Subscriptions Having Data Validation Failures (数据校验失败时重新初始化)
Distribution Clean Up (分发清理)
Agent History Clean Up (代理执行SQL历史数据清理)
Replication Monitoring Refresher (复制监视刷新)
distribution cleanup job’
作业用于清除distribution库中事务(已经/没有同步到订阅的事务,这取决于具体参数),如果禁止该作业,那么由log reader agent传递到分发库的数据就会越积越多. 而distribution agent会扫描相应的表,将数据传递到订阅库.因此过多的数据会造成distribution agent效率低下,一起复制的延迟等…, 并且也会引起distribution库文件扩张.
‘distribution cleanup job’默认每10分钟执行一次,调用下面这个存储过程来完成清除工作.
EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0, @max_distretention = 72
@min_distretention 表示当事务被传送到订阅后,最小保留的时间. 这里是0小时,表示事务被传递到订阅后会被立刻删除
@max_distretention 表示没有被传递到订阅的事务的最长保留时间.这里是72小时,即如果一些事务在72后仍然没有被传递到订阅,会被删除掉,这会造成发布库和订阅库数据的不一致.
sp_MSdistribution_cleanup会去移除过期的订阅并---删除MSrepl_commands表和MSrepl_transactions表中的数据,并删除相应的快照文件
Replication agents checkup
sp_replication_agent_checkup
检查每个分发数据库的复制代理程序,这些复制代理程序正在运行但在指定的心跳信号间隔内没有历史记录。
此存储过程在分发服务器的任何数据库上执行。
[@heartbeat_interval =] 'heartbeat_interval'
是代理程序在不记录进度消息的情况下可以运行的最长分钟数。heartbeat_interval 的数据类型为 int,默认值为 10 分钟。
返回代码值
sp_replication_agent_checkup 为检测到的每个置疑代理程序生成 14151 号错误。它还记录关于该代理程序的失败历史记录消息。
‘相关系统表:
从 MSmerge_history 中删除了 0 条历史记录。
从 MSmerge_articlehistory 中删除了 0 条历史记录。
从 MSsnapshot_history 中删除了 0 条历史记录。
从 MSlogreader_history 中删除了 0 条历史记录。
从 MSdistribution_history 中删除了 0 条历史记录。
从 MSqreader_history 中删除了 0 条历史记录。
从 MSrepl_errors 中删除了 0 条历史记录。
从 sysreplicationalerts 中删除了 0 条历史记录。
从 MStracer_tokens 中删除了 0 条历史记录。