SQL> grant execute any procedure to repadmin;
SQL> execute dbms_repcat_admin.grant_admin_any_repgroup('repadmin');
SQL> execute dbms_repcat_admin.grant_admin_any_schema(username => 'repadmin');
SQL> grant comment any table to repadmin;
SQL> grant lock any table to repadmin;
SQL> grant select any dictionary to repadmin;
用repadmin 创建database link 连接
SQL> conn repadmin/repadmin
SQL> create database link "salse.anymusic.com" connect to repadmin identified by repadmin using 'music226';
说明一下;salse.anymusic.com为我修改global_name的值
music226 :是以上tnsnames.ora中我设定连接机器B数据库的值
察看一下:SQL> select owner,db_link,host from all_db_links;
OWNER DB_LINK HOST
REPADMIN SALSE.ANYMUSIC.COM music226
在机器B操作如下;
察看v$option,Advanced replication为TRUE,则支持高级复制功能;否则不支持
select * from v$option;
以上察看结果默认为ture,支持高级复制。
察看global_name参数
SQL> show parameter global_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
global_names boolean FALSE
察看默认global_name,数据库域名
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
MUSIC1.REGRESS.RDBMS.DEV.US.ORACLE.COM
修改global_name,数据库域名
SQL> alter database rename global_name to salse.anymusic.com;
察看修改结果;
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
SALSE.ANYMUSIC.COM
创建帐户及数据:
SQL> create user wcms identified by abc123 default tablespace users;
SQL>grant connect,resource to wcms;
切换到wcms,
SQL> conn wcms/abc123
SQL> create table test(id number,name varchar2(20),constraint test_id_pk primary key(id)); (主键一定是要的);
插入数据
SQL> insert into test values(1,'zhao');
SQL> insert into test values(2,'yong');
配置复制管理用户
SQL> create user repadmin identified by repadmin default tablespace users;
建立管理数据库复制的用户repadmin,并赋权。
SQL> create user repadmin identified by repadmin default tablespace users temporary tablespace temp;
SQL> execute dbms_defer_sys.register_propagator('repadmin');
SQL> grant execute any procedure to repadmin;
SQL> execute dbms_repcat_admin.grant_admin_any_repgroup('repadmin');
SQL> execute dbms_repcat_admin.grant_admin_any_schema(username => 'repadmin');
SQL> grant comment any table to repadmin;
SQL> grant lock any table to repadmin;
SQL> grant select any dictionary to repadmin;
用repadmin 创建database link 连接
SQL> create database link "master.anymusic.com" connect to repadmin identified by repadmin using 'music205';
说明一下;master.anymusic.com为我修改global_name的值
music205 :是以上tnsnames.ora中我设定连接机器A数据库的值
察看一下:SQL> select owner,db_link,host from all_db_links;
SQL> select owner,db_link,host from all_db_links;
OWNER DB_LINK HOST
--------------------------------------------------------------------------------
REPADMIN MASTER.ANYMUSIC.COM music205
测试开始
登陆机器A
测试数据库链接:
SQL> select * from global_name@salse.anymusic.com;
显示:
GLOBAL_NAME
--------------------------------------------------------------------------------
SALSE.ANYMUSIC.COM
表示数据库到此连接成功
登陆机器B
测试数据库链接:
SQL> select * from global_name@master.anymusic.com;
显示:
GLOBAL_NAME
-------------