我正在拼命寻找一些逻辑或脚本来检查命令,msrepl_commands其中已经移动到订阅者但尚未删除的命令数量。
我正在手动运行该程序:
EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0, @max_distretention = 72
Run Code Online (Sandbox Code Playgroud)
但它没有删除任何行,即使我检查msrepl_commands并发现有 20M 行都出现在 2016-08-30 00:01:00 AM 和 2016-08-31 09:00:00 AM 之间,但是如果我运行分发清理然后它应该在循环中删除前 10K,直到行数达到 2000。
我对如何检查那些传递的命令感到有些困惑(msdistribution_status给了我分散的和未分散的命令,但这是累积的,我需要当前状态)。