zoukankan      html  css  js  c++  java
  • 事物复制中大项目(Large Article)出问题如何快速修复

    事物日志中如果大的发布项目(Article)出问题了,并且影响了系统的使用,如何快速的解决?

     

    一般的做法是重新用快照或者备份初始化,但是如果出问题的表非常大(上亿的记录,几十GB的数据),使用初始化是非常耗费时间的。

     

    其实可以重建发布订阅,而不用快照初始化的方式解决,这样就极大的节省了初始化的时间,而且不会对主库的表加锁。

     

    具体的步骤如下:

     

    1.  将发布订阅的脚本导出到SSMS新的查询窗口

    这里我们需要注意的是两个参数:

    execsp_addarticle  @pre_creation_cmd =N'drop'

    drop:表示删除存在的对象重新创建

    exec sp_addsubscription  @sync_type = N'automatic'  

    Automatic:数据和Schema由发布表初始化

     

    2.  修改脚本,将上面的两个属性修改为:

     

    @pre_creation_cmd=’none’ (数据架构都已经在订阅段准备好了,不需要snapshot同步了).

    @sync_type = N'replication support only' (架构和数据已经初始化)

     

    3.  使用SSMS删除发布订阅

     

    4.  同步数据,可以使用Redgate’sData Compare比对数据将发布订阅表数据完全同步,也可以通过其他方法比如BCP之类的。

     

    5.  数据同步完成后执行第二步保存的脚本,就会创建新的发布和订阅,数据保持同步。

     

    通过这样的步骤相比Snapshot初始化时间大大减少。因为要保证两边的数据完全同步,所以在创建发布订阅的过程中不能有新的事物发生,所以要有停机时间。使用之前一定要自己测试哦。

  • 相关阅读:
    Java基础(六)判断两个对象相等:equals、hashcode、toString方法
    同时找最大最小值
    0-1背包问题
    大数相加
    单例模式(singleton pattern)
    House Robber
    Binary Tree Paths
    双向链表的插入
    工厂模式(factory pattern)
    装饰者模式(decorator pattern)
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3359752.html
Copyright © 2011-2022 走看看