由于分发数据库执行一个较长的事务,达到了系统预定的72小时,导致了该订阅过期,数据库分发代理已不可再启用,提示错误如下:
错误信息:已将此(这些)订阅标记为不活动,必须将其重新初始化。需要删除 NoSync 订阅,然后重新创建它们
解决:
找到数据库服务器找到distribution数据库
他这个里面有一张表dbo.MSsubscriptions
状态字段(0 = 不活动;1 = 已订阅;2 = 活动)
查找状态不正常的发布
use distribution go select status,*from dbo.MSsubscriptions where status <>2
查看哪些发布的status 是 0的,记下它们的publication_id
假定我查询到的publication_id为6
update sub set status = 2 from distribution.dbo.MSsubscriptions sub where status<>2 and publication_id='6'
执行之后,重新关闭和启动该分发代理作业,会初始化发布订阅