Chinaunix首页 | 论坛 | 博客
  • 博客访问: 562645
  • 博文数量: 126
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 1112
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-22 11:41
文章分类
文章存档

2010年(1)

2009年(5)

2008年(66)

2007年(54)

我的朋友

分类: Oracle

2008-01-26 00:06:25

1.环境说明:

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

SQL> conn
已连接。
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
已连接。
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
已连接。
SQL> create database link ALU.WORLD connect to repadmin identified by repadmin using 'ALU';

数据库链接已创建。

SQL> select * from ;

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

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

数据库链接已创建。

SQL> select * from ;

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

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

SQL> conn
已连接。
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
已连接。
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
已连接。
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
已连接。
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
已连接。
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
已连接。
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
已连接。
SQL> select * from rep_test;

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

14.完成

阅读(1400) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~