ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 我做高级复制的日志

我做高级复制的日志

原创 Linux操作系统 作者:aluocp 时间:2007-03-16 20:54:04 0 删除 编辑
今天做个了高级复制,曾看过tiger和eagle的文章,觉得不够详尽,故把我做的过程记录发上来,大家一起研究

引用地址:
http://aluocp.blogcn.com/diary,2630750.shtml

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.完成

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7319461/viewspace-765301/,如需转载,请注明出处,否则将追究法律责任。

下一篇: DBA:OLTP vs OLAP
请登录后发表评论 登录
全部评论

注册时间:2007-12-04

  • 博文量
    59
  • 访问量
    813939