查看文章 |
Oracle 10g高级复制实例(多主体复制)
多主体复制,MultiMaster Replication。可以简单理解为多个数据库间相互复制。 1.环境介绍: 主体定义站点:MASTER.CHRIS.COM.CN 2.环境准备:首先创建在系统中建立了两个数据库 SID: Master GLOBAL_NAME:MASTER.CHRIS.COM.CN 在实施前先要察看一些参数的设置情况 SQL> select * from v$option where parameter ='Advanced replication'; PARAMETER VALUE 如果该参数为Flase,则需要重新安装Oracle的Advanced Replication组件。 SQL> select * from global_name; GLOBAL_NAME CHRIS.COM.CN表示该数据库实例的域名,即Domain Name。被复制的数据库实例必须具有相同的域名(show parameter db_domain)。如果域名不同,则需要使用命令修改数据库实例的域名。(alter database rename global_name to .) SQL> show parameter job_queue_processes; NAME TYPE VALUE job_queue_processes参数的值必须大于0,因为数据复制需要使用Oracle的作业系统。 SQL> show parameter open_links NAME TYPE VALUE 数据复制进程需要使用很多links,如果复制系统较多,建议尽量将该参数设置大些。 在开始实施复制之前,还要在复制站点上先创建好必要的数据环境。分别在两个数据库实例上创建好用户和对应的数据表。这里我省略了创建的过程。下面是关于数据表的部分信息。 SQL> select count(*) from SCOTT.DEPT; COUNT(*) SQL> DESC SCOTT.DEPT DEPTNO NOT NULL NUMBER(2) 主键:DEPTNO --必须为主键或者联合主键。 3.复制实施准备一:在所有复制站点建立复制用户。 SQL>create user repadmin identified by repadmin default tablespace users temporary tablespace temp; User created. SQL>execute dbms_defer_sys.register_propagator('repadmin'); PL/SQL procedure successfully completed. SQL>grant execute any procedure to repadmin; Grant succeeded. SQL>execute dbms_repcat_admin.grant_admin_any_repgroup('repadmin'); PL/SQL procedure successfully completed. SQL>execute dbms_repcat_admin.grant_admin_any_schema(username => 'repadmin'); PL/SQL procedure successfully completed. SQL>grant comment any table to repadmin; Grant succeeded. SQL>grant lock any table to repadmin; Grant succeeded. SQL>grant select any dictionary to repadmin; Grant succeeded. 4.复制实施准备二:创建数据库连接。 在复制用户创建并授权成功后,分别在数据库实例上创建指向对方实例的数据库连接。 在MASTER.CHRIS.COM.CN实例上: 在REPSITE.CHRIS.COM.CN实例上:
现在开始真正的数据复制工作。一般在实施复制的时候,数据源已经存在一定量的数据,因此考虑到数据复制实施的简单性和操作性,事先已经在双方站点上部署好了相应的数据表。 主体定义站点:MASTER.CHRIS.COM.CN 以下在MASTER.CHRIS.COM.CN机器上操作 使用复制管理用户REPADMIN登录主定义站点: SQL> conn conn repadmin/repadmin Connected. SQL> select * from global_name; GLOBAL_NAME 创建复制主体组:REP_MYTEST PL/SQL procedure successfully completed. 察看复制主体组相关信息: GNAME MASTER STATUS 为主体组添加复制对象: PL/SQL procedure successfully completed. 察看复制主体组中复制对象的相关信息: SNAME ONAME STATUS GNAME 为复制对象生成复制支持: PL/SQL procedure successfully completed. 再次察看复制主体组和对应的复制对象的相关信息: GNAME MASTER STATUS SQL> select sname,oname,status,gname from dba_repobject where gname='REP_MYTEST'; SNAME ONAME STATUS GNAME 为复制主体组添加数据库主站点: PL/SQL procedure successfully completed. 以下在REPSITE.CHRIS.COM.CN机器上操作 GNAME DBLINK MASTERDEF MASTER 以下在REPSITE.CHRIS.COM.CN机器上操作 PL/SQL procedure successfully completed. 再次察看复制主体组相关信息: GNAME MASTER STATUS 注意:复制主体组的状态由QUIESCED变为NORMAL。 至此,这个复制过程实施完毕。可以进行相关的数据操作进行测试。
本文操作参考了eygle的文章《Oracle高级复制的创建配置步骤-Step by Step》原文链接:http://www.eygle.com/archives/2005/06/oraclessoeaeaeo.html
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Chrisjian/archive/2009/09/01/4507520.aspx |