【ORACLE基础二】oracle中跨服务器同步表数据(三)
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
--------------------------------------------------------------------------------
MASTER.ANYMUSIC.COM
表示数据库到此连接成功。
登陆数据库机器A
开始复制实施进程,在主数据库执行
用repadmin 登陆数据库
创建主复制组rep_anymusic,此名可以任意命名
SQL> execute dbms_repcat.create_master_repgroup('REP_anymusic');
察看复制主体组相关信息:
SQL> select gname,master,status from dba_repgroup
GNAME M STATUS
------------------------------ - ---------
REP_ANYMUSIC Y QUIESCED
QUIESCED表示主体组未开始运行。
在主体组中添加复制对象
SQL> execute dbms_repcat.create_master_repobject (sname=>'wcms',oname=>'test', type=>'TABLE', use_existing_object=>true,gname=>'REP_anymusic',copy_rows=>true);
sname 实现数据库复制的用户名称
oname 实现数据库复制的数据库对象名称
type 实现数据库复制的数据库对象类别。(支持的类别:表,索引,同义词,触发器,视图,过程,函数,程序包,程序包体)
use_existing_object true表示用主复制节点已经存在的数据库对象
gname 主复制组名
察看复制主体组中复制对象的相关信息:
SQL>select sname,oname,status,gname from dba_repobject
SNAME ONAME STATUS GNAME
------------------------------
WCMS TEST VALID REP_ANYMUSIC
为复制对象生成复制支持:
SQL> execute dbms_repcat.generate_replication_support('wcms','test','TABLE');
(说明:产生支持wcms用户下test表复制的数据库触发器和程序包)
再次察看对应的复制对象的相关信息:
SQL> select sname,oname,status,gname from dba_repobject
SNAME ONAME STATUS GNAME
------------------------------
WCMS TEST VALID REP_ANYMUSIC
WCMS TEST$RP VALID REP_ANYMUSIC
WCMS TEST$RP VALID REP_ANYMUSIC
为复制主体组添加数据库主站点:
SQL>execute dbms_repcat.add_master_database(gname=>'REP_anymusic',master=>'salse.anymusic.com',
use_existing_objects=>true,copy_rows=>true, propagation_mode => 'synchronous');
gname 主复制组名
master 加入主复制节点的另一个数据库
use_existing_object true表示用主复制节点已经存在的数据库对象
copy_rows false表示第一次开始复制时不用和主复制节点保持一致
propagation_mode 异步地执行
察看复制站点信息:
SQL> select gname,dblink,masterdef,master from dba_repsites
GNAME DBLINK M M
REP_ANYMUSIC MASTER.ANYMUSIC.COM Y Y
REP_ANYMUSIC SALSE.ANYMUSIC.COM N Y
启动复制进程:
SQL> execute dbms_repcat.resume_master_activity('REP_anymusic',true);
再次察看复制主体组相关信息:
SQL> select gname,master,status from dba_repgroup
GNAME M STATUS
------------------------------ - ---------
REP_ANYMUSIC Y NORMAL
确认复制的任务队列已经加入数据库的数据字典
SQL>select job,log_user,this_date,next_date,next_sec,broken,failures,what from user_jobs;
JOB LOG_USER THIS_DATE NEXT_DATE
NEXT_