如何理解Oracle系统数据的复制技术

72次阅读
没有评论

共计 3179 个字符,预计需要花费 8 分钟才能阅读完成。

本篇文章为大家展示了 Oracle 系统数据的复制技术,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

数据复制的实现

下面我们举一个例子来说明各步具体需要完成的工作。在这个例子中我们采用多主控站点复制方式,设有两个主控站点和两个共享数据表。两个主控站点分别为:处理站点(cl.world)和解释站点(js.wo rld);两个数据表为测区 (survey) 和测线 (line)。

STEP1 创建复制站点:

(1)首先以 SYSTEM 身份登陆主站点数据库 cl.worldCONNECT system/manager@cl.world;

(2)创建用户 mdash; 复制管理员,并为该用户授权复制管理员负责复制站点的创建和管理,每个复制站点都必须创建复制管理员以下为引用的内容:

CREATE USER repadmin IDENTIFIED BY repadmin; BEGIN DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA (username =   rsquo;repadmin rsquo;); END;

(3)为本站点指定传播者;

传播者负责将本地 *** 更新的数据传播到其他站点上,以下为引用的内容:

BEGIN   DBMS_DEFER_SYS.REGISTER_PROPAGATOR (username =   rsquo;repadmin rsquo;); END;

(4)为本站点指定接收者;

接收者负责接收其他站点上的传播者传送过来的数据,以下为引用的内容:

BEGIN DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP (   username =   rsquo;repadmin rsquo;,   privilege_type =   rsquo;receiver rsquo;,   list_of_gnames =  NULL); END;

(5)确定清除时间;

为了使传送过来事务队列不致过大,需要将成功加载的事务从事物队列里清除掉,这里设定每小时清除一次。以下为引用的内容:

CONNECT repadmin/repadmin@cl.world BEGIN   DBMS_DEFER_SYS.SCHEDULE_PURGE ( next_date =  SYSDATE, interval =   rsquo;SYSDATE + 1/24 rsquo;, delay_seconds =  0); END;

在建立好站点 cl.world 后,以同样的方法创建站点 js. world。

(6)创建各主控站点之间的调度链接。

创建各主控站点之间的调度链接需要先在各主控站点间建立数据库链接,之后为每个数据库链接定义调度时间。

首先,在处理站点上建立与解释站点的数据库链接,这里需要先建立一个公用数据库链接,供其他私有数据库链接来使用。以下为引用的内容:

CONNECT SYSTEM/MANAGER@cl.world CREATE PUBLIC DATABASE LINK js.world USING  rsquo;js.world rsquo;; CONNECT repadmin/repadmin@cl.world CREATE DATABASE LINK js.world CONNECT TO repadmin IDENTIFIED BY repadmin;

同样,在解释站点上建立与处理站点的数据库链接。以下为引用的内容:

CONNECT SYSTEM/MANAGER@js.world CREATE PUBLIC DATABASE LINK cl.world USING  rsquo;cl.world rsquo;; CONNECT repadmin/repadmin@js.world CREATE DATABASE LINK cl.world CONNECT TO repadmin IDENTIFIED BY repadmin;

调度链接确定本站点上的事务向其他站点发送的频度,下面的代码为 10 分钟一次,以下为引用的内容:

CONNECT repadmin/repadmin@cl.world BEGIN DBMS_DEFER_SYS.SCHEDULE_PUSH ( destination =   rsquo;js.world rsquo;, interval =   rsquo;SYSDATE + (1/144) rsquo;, next_date =  SYSDATE, parallelism =  1, execution_seconds =  1500, delay_seconds =  1200); END;

在解释站点上做相同的工作 STEP2 创建主控组在复制环境中,Oracle 用组来管理复制对象。通过将相关的复制对象放在一个组里,从而方便对大量数据对象的管理。

这里我们假设用户模式 integr ation 在处理站点和解释站点都已存在,而且表测区 (survey) 和测线 (line) 也已经创建。

(1)创建主控组对象 以下为引用的内容:

CONNECT repadmin/repadmin@cl.world BEGIN DBMS_REPCAT.CREATE_MASTER_REPGROUP ( gname =   rsquo;inte_repg rsquo;); END;

(2)向主控组中添加数据对象,将测区表 survey 加入到组 inte_repg 中以下为引用的内容:

BEGIN DBMS_REPCAT.CREATE_MASTER_REPOBJECT ( gname =   rsquo;inte_repg rsquo;, type =   rsquo;TABLE rsquo;, oname =   rsquo;survey rsquo;, sname =   rsquo;integration rsquo;, use_existing_object =  TRUE, copy_rows =  FALSE); END;

以同样的方法将测线表 line 加入到组 inte_repg 中。

(3)在主控组中添加其他参与复制的站点,数据库之间的同步方式在此指定以下为引用的内容:

BEGIN DBMS_REPCAT.ADD_MASTER_DATABASE ( gname =   rsquo;inte_repg rsquo;, master =   rsquo;js.world rsquo;, use_existing_objects =  TRUE, copy_rows =  FALSE, propagation_mode =   rsquo;ASYNCHRONOUS rsquo;); END;

(4)如果可能出现冲突,则需要配置冲突解决方案。冲突解决方案将在后面介绍。

(5)为每个对象生成复制支持, 以下为引用的内容:

BEGIN DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT ( sname =   rsquo;integration rsquo;, oname =   rsquo;survey rsquo;, type =   rsquo;TABLE rsquo;, min_communication =  TRUE); END;

测线表 line 也一样。

(6)重新开始复制以下为引用的内容:

BEGIN DBMS_REPCAT.RESUME_MASTER_ACTIVITY ( gname =   rsquo;inte_repg rsquo;); END;

以同样的方式设置解释站点。设置成功后,数据复制过程就宣告完毕,库中的数据就可进行复制。

上述内容就是 Oracle 系统数据的复制技术,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计3179字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)