文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

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

数据复制的实现

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

STEP1 创建复制站点:

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

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

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

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

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

BEGIN     DBMS_DEFER_SYS.REGISTER_PROPAGATOR (username => ’repadmin’);   END;

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

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

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

(5)确定清除时间;

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

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

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

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

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

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

CONNECT SYSTEM/MANAGER@cl.world   CREATE PUBLIC DATABASE LINK js.world USING ’js.world’;   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 ’cl.world’;   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 => ’js.world’,   interval => ’SYSDATE + (1/144)’,   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 => ’inte_repg’);   END;

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

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

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

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

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

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

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

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

测线表 line 也一样。

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

BEGIN   DBMS_REPCAT.RESUME_MASTER_ACTIVITY (   gname => ’inte_repg’);   END;

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯