首页 - 数据库 - SQL Server

高级复制中如何应对主体站点故障

发布时间: 2007-04-19 05:04    作者: 未知    来源: 未知    浏览:    评论

高级复制中如何应对主体站点故障作者:eygle出处:http://blog.eygle.com日期:February 18, 2005
« 在高级复制中如何切换主体定义站点 | Blog首页 | 自己动手,丰衣足食 »
在同步复制中
一旦任意主体站点出现故障,数据库将会出现问题。


SQL> select * from scott.dept;DEPTNO DNAME LOC------ -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 33 ORACLE beijing 35 Oracle Beijing6 rows selectedSQL>

此时DML操作不能进行

SQL> insert into scott.dept values (36,'Oracle','Beijing');insert into scott.dept values (36,'Oracle','Beijing')ORA-02068: following severe error from TESTORA9ORA-03113: end-of-file on communication channelORA-02068: following severe error from TESTORA9ORA-03113: end-of-file on communication channelSQL> select gname,dblink,masterdef from dba_repsites;GNAME DBLINK MASTERDEF ------------------------------ ----------------------------------REP_TT CONNER.HURRAY.COM.CN Y REP_TT TESTORA9.HURRAY.COM.CN N

简单的,我们可以移除出问题的主体站点

SQL> exec dbms_repcat.remove_master_databases(gname => 'rep_tt',master_list => 'TESTORA9.HURRAY.COM.CN');PL/SQL procedure successfully completed

此后DML操作可以继续:

SQL> insert into scott.dept values (36,'Oracle','Beijing');1 row insertedSQL> COMMIT;Commit completeSQL> select gname,dblink,masterdef from dba_repsites;GNAME DBLINK MASTERDEF ------------------------------ ----------------------------------REP_TT CONNER.HURRAY.COM.CN Y

如果故障站点修复之后,需要重新加入复制组,可以先在故障站点删除复制组:

SQL> exec dbms_repcat.drop_master_repgroup(gname => 'rep_tt',drop_contents => false,all_sites => false)PL/SQL procedure successfully completed

然后在主体定义站点重新加入该主体站点:

SQL> exec dbms_repcat.suspend_master_activity(gname => 'rep_tt')PL/SQL procedure successfully completedSQL> execute dbms_repcat.add_master_database(gname=>'rep_tt', master=>'TESTORA9.HURRAY.COM.CN',use_existing_objects=>true, copy_rows=>false, propagation_mode => 'synchronous');PL/SQL procedure successfully completedSQL> execute dbms_repcat.resume_master_activity('rep_tt',true);PL/SQL procedure successfully completedSQL>

此时复制恢复正常。
接下来你需要解决的是数据冲突,可以参考:使用 dbms_rectifier_diff解决高级复制中的数据冲突问题

TAG

Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多