1.环境说明:

数据库平台和版本:Oracle9i for Windows
主体定义数据库:OCP.WORLD
主体数据库:ALU.WORLD
复制管理员:repadmin
应用用户:repuser
本例复制的对象:rep_test数据表

SQL> conn system/manager@OCP
已连接。
SQL> show parameter

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
compatible                           string      9.2.0.1.0
job_queue_processes                  integer     1
global_names                         boolean     TRUE
db_domain                            string      CONS

SQL> select * from global_name;

GLOBAL_NAME
-------------------------------
OCP.WORLD

SQL> conn system/manager@ALU
已连接。
SQL> show parameter

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
compatible                           string      9.2.0.1.0
job_queue_processes                  integer     1
global_names                         boolean     TRUE
db_domain                            string      CONS

SQL> select * from global_name;

GLOBAL_NAME
-------------------------------
ALU.WORLD

2.在主体定义数据库和主体数据库分别创建repadmin用户并授权

SQL> create user repadmin identified by repadmin default tablespace users temporary tablespace temp;

用户已创建

SQL> execute dbms_defer_sys.register_propagator('repadmin');

PL/SQL 过程已成功完成。

SQL> grant execute any procedure to repadmin;

授权成功。

SQL> execute dbms_repcat_admin.grant_admin_any_repgroup('repadmin');

PL/SQL 过程已成功完成。

SQL> execute dbms_repcat_admin.grant_admin_any_schema('repadmin');

PL/SQL 过程已成功完成。

SQL> grant comment any table to repadmin;

授权成功。

SQL> grant lock any table to repadmin;

授权成功。

SQL> grant select any dictionary to repadmin;

授权成功。

3.以repadmin用户登陆,在主体定义数据库和主体数据库分别创建db link

SQL> conn repadmin/repadmin@OCP
已连接。
SQL> create database link ALU.WORLD connect to repadmin identified by repadmin using 'ALU';

数据库链接已创建。

SQL> select * from global_name@OCP;

GLOBAL_NAME
---------------------------------------
OCP.WORLD

SQL> conn repadmin/repadmin@ALU
已连接。
SQL> create database link OCP.WORLD connect to repadmin identified by repadmin using 'OCP';

数据库链接已创建。

SQL> select * from global_name@ALU;

GLOBAL_NAME
-----------------------------------
ALU.WORLD

4.以repuser用户登陆主体定义数据库,创建测试数据表rep_test

SQL> conn repuser/repuser@OCP
已连接。
SQL> create table rep_test (id number, name varchar2(10));

表已创建。

SQL> alter table rep_test add (constraint pk_rep_test primary key (id));

表已更改。

SQL> insert into rep_test values (1,'a');

已创建 1 行。

SQL> insert into rep_test values (2,'b');

已创建 1 行。

SQL> insert into rep_test values (3,'c');

已创建 1 行。

SQL> insert into rep_test values (4,'d');

已创建 1 行。

SQL> insert into rep_test values (5,'e');

已创建 1 行。

SQL> commit;

提交完成。

5.以repuser用户登陆主体数据库,创建测试数据表rep_test(建立的表结构和数据同4)

SQL> conn repuser/repuser@ALU
已连接。
SQL> create table rep_test (id number, name varchar2(10));

表已创建。

SQL> alter table rep_test add (constraint pk_rep_test primary key (id));

表已更改。

SQL> insert into rep_test values (1,'a');

已创建 1 行。

SQL> insert into rep_test values (2,'b');

已创建 1 行。

SQL> insert into rep_test values (3,'c');

已创建 1 行。

SQL> insert into rep_test values (4,'d');

已创建 1 行。

SQL> insert into rep_test values (5,'e');

已创建 1 行。

SQL> commit;

提交完成。

6.登陆主体定义数据库,创建复制组

SQL> conn repadmin/repadmin@OCP
已连接。
SQL> execute dbms_repcat.create_master_repgroup('rep_hh');

PL/SQL 过程已成功完成。

SQL> select gname,master,status from dba_repgroup where gname='REP_HH';

GNAME                          M STATUS
------------------------------ - ---------
REP_HH                         Y QUIESCED

7.在复制组中加入复制对象

SQL> execute dbms_repcat.create_master_repobject(sname=>'repuser',oname=>'rep_test', type=>'table',use_existing_object=>true,gname=>'rep_hh',copy_rows=>false);

PL/SQL 过程已成功完成。

SQL> select sname,oname,status,gname from dba_repobject where gname='REP_HH';

SNAME                          ONAME                          STATUS     GNAME
------------------------------ ------------------------------ ---------- ------------------------------
REPUSER                        REP_TEST                       VALID      REP_HH

8.对复制对象产生复制支持

SQL> execute dbms_repcat.generate_replication_support('repuser','rep_test','table');

PL/SQL 过程已成功完成。

SQL> select gname, master, status from dba_repgroup where gname='REP_HH';

GNAME                          M STATUS
------------------------------ - ---------
REP_HH                         Y QUIESCED

SQL> select sname,oname,status,gname from dba_repobject where gname='REP_HH';

SNAME                          ONAME                          STATUS     GNAME
------------------------------ ------------------------------ ---------- ------------------------------
REPUSER                        REP_TEST                       VALID      REP_HH
REPUSER                        REP_TEST$RP                    VALID      REP_HH
REPUSER                        REP_TEST$RP                    VALID      REP_HH

9.添加主体复制节点

SQL> execute dbms_repcat.add_master_database(gname=>'rep_hh',master=>'ALU.WORLD',use_existing_objects=>true, copy_rows=>false, propagation_mode => 'synchronous');

PL/SQL 过程已成功完成。

SQL> select gname, dblink, masterdef MASTERDEF, master MASTER from sys.dba_repsites where gname='REP_HH';

GNAME                          DBLINK                                   M M
------------------------------ -------------------------------------------------
REP_HH                         ALU.WORLD                                N Y
REP_HH                         OCP.WORLD                                Y Y

10.登陆主体站点,检查复制对象情况

SQL> conn repadmin/repadmin@ALU
已连接。
SQL> select sname,oname,status,gname from dba_repobject where gname='REP_HH';

SNAME                          ONAME                          STATUS     GNAME
------------------------------ ------------------------------ ---------- ------------------------------
REPUSER                        REP_TEST                       VALID      REP_HH
REPUSER                        REP_TEST$RP                    VALID      REP_HH
REPUSER                        REP_TEST$RP                    VALID      REP_HH

11.在主体定义站点启动复制

SQL> conn repadmin/repadmin@OCP
已连接。
SQL> execute dbms_repcat.resume_master_activity('rep_hh',true);

PL/SQL 过程已成功完成。

SQL> select gname, master, status from dba_repgroup where gname='REP_HH';

GNAME                          M STATUS
------------------------------ - ---------
REP_HH                         Y NORMAL

12.在主体定义站点添加数据测试

SQL> conn repuser/repuser@OCP
已连接。
SQL> select * from rep_test;

        ID NAME
---------- ----------
         1 a
         2 b
         3 c
         4 d
         5 e

SQL> insert into rep_test values (0,'x');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from rep_test;

        ID NAME
---------- ----------
         1 a
         2 b
         3 c
         4 d
         5 e
         0 x

13.在主体数据库验证

SQL> conn repuser/repuser@ALU
已连接。
SQL> select * from rep_test;

        ID NAME
---------- ----------
         1 a
         2 b
         3 c
         4 d
         5 e
         0 x

14.完成

Trackback

no comment untill now

Add your comment now

切换到手机版