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初始化时间大大减少。因为要保证两边的数据完全同步,所以在创建发布订阅的过程中不能有新的事物发生,所以要有停机时间。使用之前一定要自己测试哦。

  • 相关阅读:
    适合高要求应用的高性能MEMS IMU解决方案
    apt-get本地软件源搭建
    DNS与ARP协议
    vue computed
    常见宏任务与微任务
    Promise.resolve解析
    为什么var可以重复声明
    symbol
    引用类型转换为原始值(基本类型)
    ==运算符
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3359752.html
Copyright © 2011-2022 走看看