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

高级|站点

高级复制中如何应对主体站点故障作者: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解决高级复制中的数据冲突问题

时间: 2024-09-27 12:52:09

高级复制中如何应对主体站点故障的相关文章

Oracle高级复制

文章摘要: Oracle作为数据库平台,并且有的项目使用到了Oracle的数据库复制技术,其中也遇到了一些问题,因此在这里,我对Oracle的复制技术谈一下我个人的理解,希望能够对采用Oracle数据库的项目组有所帮助.其中在文中使用到的SQL脚本都是经过检验可以运行的.          -------------------------------------------------------------------------------- 正文:     Oracle高级复制 在开始之

如何搭建Oracle 8高级复制环境

Oracle 高级复制,也称为对称复制.和 Oracle 的其他功能不同, Oracle 的高级复制不是即插即用的,用户必须深刻理解它们是如何工作的以及各种复制方案的优缺点.深刻理解复制的基本概念可以帮助你设计一个可靠的复制环境. 本文主要介绍了搭建 Oracle 8 高级复制环境时需要设置的一些系统参数.需要提醒读者注意的是,笔者所给出的这些系统参数的具体配置数值只能保证可以成功的搭建出一个相对较好的高级复制环境,但本文并未对这些参数的优化配置进行进一步的深入探讨. 现在我们正式开始.假设有两

用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点_vbs

问: 嗨,Scripting Guy!我如何从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点? -- CL 答: 您好,CL.这是很有趣的问题,或者我们应当说,这是两个很有趣的问题.因为您实际上问了两个问题.第一个问题很简单:我可以使用脚本打开特定的 Web 站点吗?您大概已经知道答案了,我可以大声地回答您,可以!下面是一个示例脚本,它将"脚本中心"的 URL 存储在一个名为 strURL 的变量中.然后,此脚本会创建 WSH Shell 对象的一个实例,并使用 Run 

SQL Server复制中错误处理

在SQL Server的复制中出现在错误"应用复制的命令时在订阅服务器上找不到该行",换上以前的做法就是删除掉这个复制,然后再新建一个复制,但是这次,我突然想BAIDU一下,看看别人是怎么处理这个问题的,然后发现找到的文章都是从MSDN上抄下来的,因此我决定把我的做法写下来. 首先查MSDN,确定这个错误的ID为20598,这个下面会用到:确定了错误ID之后,有两种方法可以跳过这个错误 第一种是使用"右键->复制->分发服务器属性->默认配置文件->然

调查报告 | 兵马俑VPN 高级威胁中的匿名性

本文讲的是调查报告 | 兵马俑VPN 高级威胁中的匿名性,RSA于8月初发布了一份技术分析报告,报告称中国一家VPN服务提供商入侵了百台Windows服务器,并充当其匿名基础网络设施的一部分.安全牛组织译者将篇报告翻译成中文.下面是报告的主要内容: 兵马俑是什么? 兵马俑VPN是一个拥有多个VPN"品牌",并对之进行实时维护的集团.其旗下各个品牌的网站十分相似. 兵马俑VPN系统包含网站.客户端程序.客户端程序认证.一般VPN节点和用户认证等五个关键组件. 兵马俑节点 在兵马俑使用的1

如何用LS启动复制中的发邮件任务?

问题描述 如何用LS启动复制中的发邮件任务?我发现有公式可以做到(@Command([ReplicatorSendMail])),但ls不知道怎么搞?谢谢 解决方案 解决方案二:自己顶一下解决方案三:没用过,!mark解决方案四:先顶起!关注!找到理想答案必复

数据库系统中常见的四种故障及其解决方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 数据库系统中常见的四种故障主要有事务内部的故障.系统故障.介质故障以及计算机病毒故障,对应于每种故障都有不同的解决方法.事务故障表明事务没有提交或撤销就结束了,因此数据库可能处于不准确的状态. 一.常见的四种故障 (1)事务内部的故障:事务内部故障可分为预期的和非预期的,其中大部分的故障都是非预期的.预期的事务内部故障是指可以通过事务程序本身

在Linux中使用Openswan搭建站点到站点的IPsec VPN 隧道

在Linux中使用Openswan搭建站点到站点的IPsec VPN 隧道 虚拟私有网络(VPN)隧道是通过Internet隧道技术将两个不同地理位置的网络安全的连接起来的技术.当两个网络是使用私有IP地址的私有局域网络时,它们之间是不能相互访问的,这时使用隧道技术就可以使得两个子网内的主机进行通讯.例如,VPN隧道技术经常被用于大型机构中不同办公区域子网的连接. 有时,使用VPN隧道仅仅是因为它很安全.服务提供商与公司会使用这样一种方式架设网络,他们将重要的服务器(如,数据库,VoIP,银行服

C# 编写的com(按照C#高级编程中的方法写了所谓的连接点) c++如何将函数与事件关联起来 ?? 高手请进..........

问题描述 C#代码:是按照<C#高级编程>中的方法写的下面的IEvent接口里的方法名与后面的Class1中的事件名相同...而且Class1有特性[ComSourceInterfaces(typeof(IEvent))]据书上说这样就可以供C++来连接了.我想的就是C++写好一个函数然后这个函数就是Class1中的事件LoginOk的处理函数就和C#里用LoginOk+=....一样.但是我就是不明白怎么把C++的方法和这个Class1的事件联系起来而且这个IEvent也完全没用到...us