我使用的是sql server 2005 ,目前我应用的是事务复制,使用了一段时间后发现分发数据库 distribution 不段增长,我的发布数据库只有2G大,可是分发数据库 distribution 却已经达到10G。 发布属性中我设定的 “订阅过期” 间隔是4个小时。 
在代理中的作业中有三个是执行记录清除的:
  1. 代理历史记录清除:distribution 
  2. 分发清除:distribution
  3. 过期的订阅清除
查看日志,这三个作业都是执行成功的。实在是搞不明白到底是哪儿出了问题,还请有经验的高人出手!以下是日志内容:
  1. 代理历史记录清除:distribution 
    已以用户 test\Administrator 的身份执行。 从 MSmerge_history 中删除了 0 条历史记录。 [SQLSTATE 01000] (消息 14108)  从 MSmerge_articlehistory 中删除了 0 条历史记录。 [SQLSTATE 01000] (消息 14108)  从 MSsnapshot_history 中删除了 0 条历史记录。 [SQLSTATE 01000] (消息 14108)  从 MSlogreader_history 中删除了 0 条历史记录。 [SQLSTATE 01000] (消息 14108)  从 MSdistribution_history 中删除了 0 条历史记录。 [SQLSTATE 01000] (消息 14108)  从 MSqreader_history 中删除了 0 条历史记录。 [SQLSTATE 01000] (消息 14108)  从 MSrepl_errors 中删除了 0 条历史记录。 [SQLSTATE 01000] (消息 14108)  从 sysreplicationalerts 中删除了 0 条历史记录。 [SQLSTATE 01000] (消息 14108)  从 MStracer_tokens 中删除了 0 条历史记录。 [SQLSTATE 01000] (消息 14108)  在 0.046      秒(0 行/秒)内删除了 0 条复制历史记录。 [SQLSTATE 01000] (消息 14149).  该步骤成功。
 
   2.分发清除:distribution
    已以用户 test\Administrator 的身份执行。 在 2 秒内删除了 0 个由 0 条语句组成的复制的事务(0 行/秒)。 [SQLSTATE 01000] (消息 21010).  该步骤成功。   3.过期的订阅清除
    已以用户 test\Administrator 的身份执行。 该步骤成功。