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

事物复制中大项目(Large Article)出问题如何快速修复的更多相关文章

  1. SQL Server2012高可用之事物复制(发布订阅)测试

      (一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既不可写也不可读,即采用的高可用技术为"数据库镜像".存在的问题为 ...

  2. 82天突破1000star,项目团队梳理出软件开源必须注意的8个方面

    近期,我们在GitHub上开源了微服务任务调度框架SIA-TASK,82天,收获了1000+个star!由于这是SIA团队第一次开源项目,开源的相关工作,团队之前并没有太多的经验,因此我们特别整理了本 ...

  3. Yii2高级版本复制新项目出现问题解决(转)

    引用于 http://www.linuxidc.com/Linux/2015-02/114116.htm Yii2高级版本复制新项目会遇到下面的报错信息: exception 'yii\base\In ...

  4. eclipse 复制原项目工作空间

    eclipse 复制原项目工作空间 具体步骤: 1.首先把你需要升级的eclipse 下载并解压 2.解压好后,右击  3.进入后你能看到这样一个页面 4.我的安装路径D:\work\Eclipse\ ...

  5. IOS项目之弹出动画终结篇

    在之前写过IOS项目之弹出动画一.IOS项目之弹出动画二.IOS项目之弹出动画三,今天来一个终极封装已经上传到Github上弹出动画总结篇UIPopoverTableView. UIPopoverTa ...

  6. IOS项目之弹出动画二

    在IOS项目之弹出动画一中只是实现也功能,并没有体现面向对象的思想 ,今天就试着把它封装了一下,弹出视图的内容可以根据自定义,此处只是用UIDatePicker来演示 我把它传到了GitHub上    ...

  7. intellij idea 重命名或复制一个项目(不用重启)

    Idea 内无法直接修改Explorer 里文件夹的名称,只能手动改文件夹的名称. 目前找到的最好的方法: 1)重命名一个项目 在Idea 项目关闭状态下,在 Explorer (Windows) / ...

  8. ASP.NET MVC 复制MVC项目代码到同一个项目的时候报错The request for ‘home’ has found the following matching controll

    ASP.NET MVC 复制MVC项目代码到同一个项目的时候报错The request for ‘home’ has found the following matching controll “/” ...

  9. vs解决方案里复制一个项目

    首先,保证要复制的项目的整洁无垃圾文件: 然后,选“文件”/“导出模板”,起个名字: 再者,创建一个同类型的项目,这时项目模板里就会出现你刚才导出的项目了.

随机推荐

  1. php学习,一个简单的Calendar(2) 一个简单的活动页面

    有了前面的基础,后面就是将页面展示出来. 预览图如下:1号和31号分别有活动,会一并显示出来   这里需要搞定几个问题,一个就是数据库的连接,我们用\sys\class\class.db_connec ...

  2. JSON知多少-JSON数据结构

    最近在开发微信平台,要使用JSON进行数据交换,之前用过JSON,但仅限于…… 在开发微信平台中,要使用JSON形式如下:代码片断1: { "button":[ { "t ...

  3. armv7a-mediatek451_001_vfp-linux-gnueabi-gcc: directory: No such file or directory 编译error

    release/vm_linux/output/hisense_android/mt5399_cn_android_JB/rel/obj/oss/source/arm_mali_ko/mali400- ...

  4. C++默认参数值函数

    1.默认参数值的函数 C++语言允许在定义函数时给其中或某些形式参数(形参)指定默认值,方法就是在相应的形参后面写上“=默认值”,如果省略了对应位置上的实参的值,则在执行被调函数时以该形参的默认值进行 ...

  5. 移动应用产品开发-android开发(一)

    最近公司希望增添移动开发业务,进行移动互联网开发的调研及产品需求调研. 我主要负责技术解决方案的研究,从android开发开始学习.同时跟经理一起与其他部门同事沟通了解移动开发方面的需求. 在了解an ...

  6. Android UI 设计准则

    Design Principles  设计准则 These design principles were developed by and for the Android User Experienc ...

  7. 【HDOJ】2544 最短路

    Dijkstra. #include <stdio.h> #include <string.h> #define INF 0xfffffff ][]; ]; ]; int ma ...

  8. Spark大数据处理技术

    全球首部全面介绍Spark及Spark生态圈相关技术的技术书籍 俯览未来大局,不失精细剖析,呈现一个现代大数据框架的架构原理和实现细节 透彻讲解Spark原理和架构,以及部署模式.调度框架.存储管理及 ...

  9. POJ_2001_Shortest_Prefixes_(Trie)

    描述 http://poj.org/problem?id=2001 给出一组单词,求每个单词的最小唯一前缀. 最小唯一前缀:该前缀不能是其他单词的前缀,并且最小,如果不存在,则为该单词本身. Shor ...

  10. Android4.0 -- UI控件之 Menu 菜单的的使用(二)

    上一讲我们讲解了android中在代码或者xml文件中定义菜单,这一讲我们继续来讲解一下定义菜单的其他方式:创建上下文的菜单.查看API文档 Menus :Creating Contextual Me ...