事物复制中大项目(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初始化时间大大减少。因为要保证两边的数据完全同步,所以在创建发布订阅的过程中不能有新的事物发生,所以要有停机时间。使用之前一定要自己测试哦。
事物复制中大项目(Large Article)出问题如何快速修复的更多相关文章
- SQL Server2012高可用之事物复制(发布订阅)测试
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既不可写也不可读,即采用的高可用技术为"数据库镜像".存在的问题为 ...
- 82天突破1000star,项目团队梳理出软件开源必须注意的8个方面
近期,我们在GitHub上开源了微服务任务调度框架SIA-TASK,82天,收获了1000+个star!由于这是SIA团队第一次开源项目,开源的相关工作,团队之前并没有太多的经验,因此我们特别整理了本 ...
- Yii2高级版本复制新项目出现问题解决(转)
引用于 http://www.linuxidc.com/Linux/2015-02/114116.htm Yii2高级版本复制新项目会遇到下面的报错信息: exception 'yii\base\In ...
- eclipse 复制原项目工作空间
eclipse 复制原项目工作空间 具体步骤: 1.首先把你需要升级的eclipse 下载并解压 2.解压好后,右击 3.进入后你能看到这样一个页面 4.我的安装路径D:\work\Eclipse\ ...
- IOS项目之弹出动画终结篇
在之前写过IOS项目之弹出动画一.IOS项目之弹出动画二.IOS项目之弹出动画三,今天来一个终极封装已经上传到Github上弹出动画总结篇UIPopoverTableView. UIPopoverTa ...
- IOS项目之弹出动画二
在IOS项目之弹出动画一中只是实现也功能,并没有体现面向对象的思想 ,今天就试着把它封装了一下,弹出视图的内容可以根据自定义,此处只是用UIDatePicker来演示 我把它传到了GitHub上 ...
- intellij idea 重命名或复制一个项目(不用重启)
Idea 内无法直接修改Explorer 里文件夹的名称,只能手动改文件夹的名称. 目前找到的最好的方法: 1)重命名一个项目 在Idea 项目关闭状态下,在 Explorer (Windows) / ...
- 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 “/” ...
- vs解决方案里复制一个项目
首先,保证要复制的项目的整洁无垃圾文件: 然后,选“文件”/“导出模板”,起个名字: 再者,创建一个同类型的项目,这时项目模板里就会出现你刚才导出的项目了.
随机推荐
- mysqli扩展库操作mysql数据库
配置环境 配置php.ini文件让php支持mysqli扩展库 extension=php_mysqli.dll 建库建表 详见博客 “mysql扩展库操作mysql数据库” 查询数据库 <?p ...
- php设计模式笔记:单例模式
php设计模式笔记:单例模式 意图: 保证一个类仅有一个实例,并且提供一个全局访问点 单例模式有三个特点: 1.一个类只有一个实例2.它必须自行创建这个实例3.必须自行向整个系统提供这个实例 主要实现 ...
- Mysql修改设置root密码的命令及方法
方法一:使用SQL语句命令UPDATE 需用到Mysql自带的加密函数PASSWORD(string),该函数对一个明文密码进行加密,但不能解密.专门用于mysql.user(用户权限表)中设置密码, ...
- swift swizzle
SWIZZLE 由 王巍 (@ONEVCAT) 发布于 2015/09/30 Swizzle 是 Objective-C 运行时的黑魔法之一.我们可以通过 Swizzle 的手段,在运行时对某些方法的 ...
- Protel DXP画原理图常见错误与警告
一.警告信息 警告信息对于将来转换成PCB不会造成严重问题,通常可以忽略.但它也给我们提供了一些参考,比如unconnceted pin能告诉我们芯片的哪些管脚没有连接,很有检错意义. 1.has n ...
- Ubuntu下Memcache的安装与基本使用
安装Memcache Memcache分为两部分,Memcache服务端和客户端.Memcache服务端是作为服务来运行的,所有数据缓存的建立,存储,删除实际上都是在这里完成的.客户端,在这里我们指的 ...
- asp.net core 认证及简单集群
众所周知,在Asp.net WebAPI中,认证是通过AuthenticationFilter过滤器实现的,我们通常的做法是自定义AuthenticationFilter,实现认证逻辑,认证通过,继续 ...
- iOS -- warnings
Semantic Warnings Warning Message -WCFString-literal input conversion stopped due to an input byte t ...
- Xcode6 Xcode7 Xcode 官方链接 --备用
Xcode 6 官方下载链接: http://adcdownload.apple.com//wwdc_2014/xcode_6_beta_ie8g3n/xcode_6_beta.dmg Xcode ...
- SEVERE: Error listenerStart
转载:http://blog.sina.com.cn/s/blog_43eb83b90102e2k6.html# 今天启动Tomcat启动不了,报以下错:org.apache.catalina.cor ...