DistributionDB过大的原因

1 同一个发布库的对象被多个发布包(n)所包含,导致产生了n倍的数据

在发布库执行下面的语句,会返回被多次发布的对象

select objid,count(*) from sysarticles group by objid having(count(*)>1) order by COUNT(*) desc

2 distribution cleanup job停止工作,导致MSrepl_commands和MSrepl_transactions数据无法被清除

3 发布库中的任意一个发布的匿名订阅属性/立即初始化属性为true,这会导致全部的数据在max retention到达之前无法被删除(具体的删除逻辑见sp_MSdelete_publisherdb_trans)

在distributiondb执行下面的语句,找出存在匿名订阅/立即初始化的发布:

select a.article,p.publication from MSsubscriptions s inner join MSpublications p
on s.publication_id=p.publication_id 
inner join MSarticles a  on s.article_id=a.article_id  where subscriber_id < 0 
go
sp_helpdistpublisher

找到后在发布库执行以下语句即可

exec sp_changepublication @publication = 'xx' ,@property = 'allow_anonymous' , @value = false

exec sp_changepublication @publication = 'publicationTest' , @property = 'immediate_sync' , @value = false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈(GuoGuo)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值