`

分布实现Oracle数据库的实时数据复制

 
阅读更多
分布实现Oracle数据库的实时数据复制的步骤是这样的:

在具体的实现之前,首先要做好设计与规划。这就需要细致分析具体的业务情况,设计出一套能够满足业务需要的方案。通常在设计过程中,需要确定出要建立的数据库站点,各站点的类型,需要复制的数据对象,以及同步方式、冲突解决方案等内容。

在设计完成之后,就可具体来实现数据复制,数据复制的实现主要包括以下几步:

(1)创建复制站点;
(2)创建组对象;
(3)配置冲突解决方案。

下面我们举一个例子来说明各步具体需要完成的工作。在这个例子中我们采用多主控站点复制方式,设有两个主控站点和两个共享数据表。两个主控站点分别为:处理站点(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数据库实时同步

    Oracle数据库实时同步是指将一个Oracle数据库(称为源数据库或主数据库)的数据变化实时复制到另一个Oracle数据库(称为目标数据库或备用数据库)的过程。这一过程确保了目标数据库的数据与源数据库保持一致,即使源...

    字符集不同的Oracle数据库间交换数据的解决方法.pdf

    本文介绍了字符集不同的Oracle数据库间交换数据的几种解决方法,成功地解决了医院HIS数据库与医保数据库数据交换的问题。本文首先介绍了Oracle数据库在医院信息系统中的应用现状,然后讨论了字符集不同的Oracle...

    利用脚本实现oracle数据库双机备份

    在讨论利用脚本实现Oracle数据库双机备份的知识点时,我们需要理解几个关键的组成部分:Oracle数据库的基本概念、备份的必要性、脚本语言(如批处理)的编写、双机备份策略、网络共享的利用、以及任务计划程序的应用...

    单机模拟ORACLE分布式数据库数据复制环境的实现

    在单机上模拟Oracle分布式数据库数据复制,我们主要利用Oracle的逻辑复制技术,如Materialized Views(物化视图)和Database Link(数据库链接)。物化视图可以定期或实时地从源表获取数据,并在目标数据库中创建一...

    Oracle数据库的同步复制案例

    为了满足这一需求,Oracle数据库提供了强大的复制功能,使得分布在不同地点的数据中心能够高效地进行数据交换与共享。本文将详细介绍如何在Oracle数据库中实现同步复制,包括其前提条件、配置步骤以及相关的注意事项...

    ORACLE数据库复制

    【Oracle数据库复制】是Oracle数据库管理系统提供的一种技术,旨在解决大量只读数据导致的性能问题。复制技术将数据从一个数据库复制到另一个物理位置的数据库,这样查询和统计操作可以在独立的服务器上进行,减轻主...

    Oracle数据库间的同步复制的技术

    4. **RAC(Real Application Clusters)**:虽然RAC主要是用来提供数据库的集群服务,实现共享存储的高可用性,但其内在的Clusterware也可以实现节点间的数据库数据同步。RAC允许多个实例同时访问同一个数据库,当一...

    单机模拟ORACLE分布式数据库数据复制环境的实现.pdf

    【Oracle分布式数据库数据复制环境的实现】 Oracle分布式数据库系统是一种能够在多台计算机上共享和管理数据的架构,它允许多个地理位置分散的数据库节点协同工作,实现数据的同步和复制。这种系统对于需要高可用性...

    利用Oracle数据库快照实现数据双向复制.pdf

    Oracle数据库快照实现数据双向复制 本文将介绍如何利用Oracle数据库快照实现数据双向复制,以满足业务需求。首先,介绍了业务需求,即在医疗保险系统中,需要在多个地理位置之间实现数据共享和一致性。然后,介绍了...

    ODI如何通过logminer创新发展从oracle数据库中抽取增量数据.pdf

    Consistent 方式是专门解决这个问题的,它在处理父表前首先锁定主表和子表需要复制的记录,在增量数据复制时,插入主表和子表的新增量数据都会被本次抽取过程忽略,放在下次抽取时处理。 ODI 通过 LogMiner 技术...

    oracle数据库复制软件白皮书

    - 实时数据复制:DDS能够实时捕获源数据库的重做日志(Redo Logs),并将其传递到目标数据库。 - 高可用性和容灾:通过复制,DDS可以创建一个与源数据库实时同步的目标数据库,用于故障切换或灾难恢复。 - 数据...

    Oracle数据库使用指南

    - 数据复制:支持实时数据复制,实现灾难恢复和负载均衡。 - 企业级服务:包括性能监控、备份恢复、资源管理等。 1.1.4 Oracle数据库基本概念 Oracle数据库由多个组件组成,如数据库实例(Instance)、数据库文件...

    kettle 从oracle数据库导数据到hive 表

    ### Kettle 从 Oracle 数据库导数据到 Hive 表 #### 背景与目的 在企业级数据处理场景中,随着大数据技术的发展,越来越多的企业选择将原有的关系型数据库(如 Oracle)中的数据迁移到基于 Hadoop 生态系统的数据...

    向ORACLE数据库复制数据的方法及应用.pdf

    IMP/EXP命令适合于Oracle数据库之间的数据复制,尤其在数据库版本相近时,操作简便。而SQL*Loader更适合处理不同数据库系统间的数据迁移,对数据格式的适应性更广。根据实际需求和数据来源选择合适的方法,能有效...

    oracle实现数据库的备份与还原

    通过以上方法,开发者可以在C#环境中实现对Oracle数据库的备份与恢复操作,确保在数据丢失或系统故障时能够快速恢复服务。然而,实际应用中,还需要考虑性能优化、并发控制和自动化工具集成等多个方面,以实现高效、...

    用Oracle导入导出工具实现Oracle数据库移植

    ### 使用Oracle导入导出工具实现Oracle数据库移植 在IT领域,特别是对于数据库管理与维护方面,Oracle数据库因其高性能、稳定性及强大的功能集而备受青睐。本文将深入探讨如何利用Oracle的导入导出工具来实现数据库...

    连接其他oracle数据库信息创建本地视图

    这种方式不仅提供了实时的数据共享,还避免了数据复制带来的资源消耗。 首先,我们需要理解Oracle数据库链接的基本概念。数据库链接是由三部分组成的:本地数据库、远程数据库和链接。本地数据库是我们创建和使用...

    Oracle 数据库的数据迁移方法

    - 可以实现Oracle数据库之间的实时数据迁移,适用于需要实时同步数据的场景。 - 支持跨平台、跨版本的数据迁移。 4. **SQL*Loader**: - SQL*Loader是一种用于大批量加载数据到Oracle数据库中的工具。 - 适用于...

Global site tag (gtag.js) - Google Analytics