首页 > Linux操作系统 > Linux操作系统 > oracle 高级复制学习小结
oracle高级复制
主体站点zhworcl.com
物化视图站点 zhwdup.com
测试用户:zhw
密码:zhw
测试表:rep_table
--在两个库上分别建立复制用户repadmin并授权
create user repadmin identified by repadmin;
--授权
exec dbms_repcat_admin.grant_admin_any_schema(username=> 'repadmin') ;
grant comment any table to repadmin;
grant lock any table to repadmin ;
grant select any dictionary to repadmin ;
--注册传播用户并授权,这里使用了系统用户repadmin,
exec dbms_defer_sys.register_propagator(username => 'repadmin') ;
--注册接受用户,使用repadmin
begin
dbms_repcat_admin.register_user_repgroup(
username => 'repadmin' ,
privilege_type => 'receiver' ,
list_of_gnames => NULL);
end ;
/
--建立物化视图站点复制管理员的代理用户,
begin
dbms_repcat_admin.register_user_repgroup(
username => 'repadmin' ,
privilege_type => 'proxy_snapadmin' ,
list_of_gnames => null);
end;
/
---在两个库上分别创建dblink:
CREATE PUBLIC DATABASE LINK zhworcl.com connect to repadmin identified by repadmin USING 'zhworcl';
CREATE PUBLIC DATABASE LINK zhwdup.com connect to repadmin identified by repadmin USING 'zhwdup';
---复制开始
在主体站点上开始操作
conn repadmin/repadmin@zhworcl ;
---创建复制组
exec dbms_repcat.create_master_repgroup('rep_g') ;
复制组视图:select * from dba_repgroup ;
---在复制组加入复制对象
exec dbms_repcat.create_master_repobject(sname =>'zhw',oname =>'rep_table',type => 'table',use_existing_object =>
true,gname =>'rep_g', copy_rows => false) ;
----对复制对象产生复制支持
exec dbms_repcat.generate_replication_support(sname => 'zhw' , name => 'rep_table',type => 'table') ;
---添加主体复制节点:
exec dbms_repcat.add_master_database(gname =>'rep_g',master =>'ZHWDUP.COM',use_existing_objects =>true,copy_rows
=>false,propagation_mode =>'synchronous') ;
报ORA-23312: 根据 ZHWORCL.COM 不是 masterdef,一般的错误就是
1、没用repadminyongh 2、复制组或站点有错误
---在主体定义站点启动复制:
execute dbms_repcat.resume_master_activity('rep_g',true);
测试:
在两个库上分别创建测试表:
create user zhw identified by zhw ;
create table zhw.rep_table as select * from scott.emp ;
------主键必须
ALTER TABLE zhw.rep_table ADD(CONSTRAINT rep_table_PK PRIMARY KEY(empno));
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10065315/viewspace-621599/ ,如需转载,请注明出处,否则将追究法律责任。