zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    原型模式
    Object.defineProperties()和Object.defineProperty()方法
    访问器属性:setter()函数和getter()函数
    2019.7.11刷题统计
    2019.7.10刷题统计
    2019.7.9刷题统计
    2019.7.8刷题统计
    2019.7.7刷题统计
    2019.7.6刷题统计
    2019.7.5刷题统计
  • 原文地址:https://www.cnblogs.com/stswordman/p/2100280.html
Copyright © 2011-2022 走看看