事物复制中大项目(Large Article)出问题如何快速修复
2013-10-09 14:39
309 查看
事物日志中如果大的发布项目(Article)出问题了,并且影响了系统的使用,如何快速的解决?
一般的做法是重新用快照或者备份初始化,但是如果出问题的表非常大(上亿的记录,几十GB的数据),使用初始化是非常耗费时间的。
其实可以重建发布订阅,而不用快照初始化的方式解决,这样就极大的节省了初始化的时间,而且不会对主库的表加锁。
具体的步骤如下:
1.将发布订阅的脚本导出到SSMS新的查询窗口
![](http://blog.51cto.com/attachment/201310/143908705.png)
这里我们需要注意的是两个参数:
execsp_addarticle@pre_creation_cmd=N'drop'
drop:表示删除存在的对象重新创建
execsp_addsubscription@sync_type=N'automatic'
Automatic:数据和Schema由发布表初始化
2.修改脚本,将上面的两个属性修改为:
@pre_creation_cmd=’none’ (数据架构都已经在订阅段准备好了,不需要snapshot同步了).
@sync_type=N'replicationsupportonly'(架构和数据已经初始化)
3.使用SSMS删除发布订阅
4.同步数据,可以使用Redgate’sDataCompare比对数据将发布订阅表数据完全同步,也可以通过其他方法比如BCP之类的。
5.数据同步完成后执行第二步保存的脚本,就会创建新的发布和订阅,数据保持同步。
通过这样的步骤相比Snapshot初始化时间大大减少。因为要保证两边的数据完全同步,所以在创建发布订阅的过程中不能有新的事物发生,所以要有停机时间。使用之前一定要自己测试哦。
一般的做法是重新用快照或者备份初始化,但是如果出问题的表非常大(上亿的记录,几十GB的数据),使用初始化是非常耗费时间的。
其实可以重建发布订阅,而不用快照初始化的方式解决,这样就极大的节省了初始化的时间,而且不会对主库的表加锁。
具体的步骤如下:
1.将发布订阅的脚本导出到SSMS新的查询窗口
![](http://blog.51cto.com/attachment/201310/143908705.png)
这里我们需要注意的是两个参数:
execsp_addarticle@pre_creation_cmd=N'drop'
drop:表示删除存在的对象重新创建
execsp_addsubscription@sync_type=N'automatic'
Automatic:数据和Schema由发布表初始化
2.修改脚本,将上面的两个属性修改为:
@pre_creation_cmd=’none’ (数据架构都已经在订阅段准备好了,不需要snapshot同步了).
@sync_type=N'replicationsupportonly'(架构和数据已经初始化)
3.使用SSMS删除发布订阅
4.同步数据,可以使用Redgate’sDataCompare比对数据将发布订阅表数据完全同步,也可以通过其他方法比如BCP之类的。
5.数据同步完成后执行第二步保存的脚本,就会创建新的发布和订阅,数据保持同步。
通过这样的步骤相比Snapshot初始化时间大大减少。因为要保证两边的数据完全同步,所以在创建发布订阅的过程中不能有新的事物发生,所以要有停机时间。使用之前一定要自己测试哦。
相关文章推荐
- android 使用开源工具ChkBugReport分析Bugreport
- iOS6 中新的控件UIRefreshControl下拉刷新
- Introduction to Networking: Part 2, A Few More Basics
- Wince开发快捷键(visual studio 2005)
- shell中的for循环
- Javascript 中 null、NaN和undefined的区别
- ShowModal在FireMonkey移动应用程序对话框
- oracle sql的优化方法概述
- Sicily 1021 couples
- 深入浅出 Cocoa 多线程编程之 block 与 dispatch quene
- 亚洲赛前训练计划
- 输入年月日,查询当前的第几天...
- 摄像头6大另类应用 绝对的强大!
- 亚洲赛前训练计划
- 多元函数微分学小结(2):从反函数定理到隐函数存在定理
- 虚机Centos 启用网卡no link present. Check cable的问题
- oracle sql的优化方法概述
- ubuntu系统目录结构
- tomcat启动超时解决方法
- PADS 差分信号如何画