6. 创建要复制的组 testuser_mg,加入数据库对象,产生对象的复制支持
--以复制管理员repadmin身份登陆复制站点
--建立名为dbcard_mg 的复制组
BEGIN
DBMS_REPCAT.CREATE_MASTER_REPGROUP (
gname => 'dbcard_mg');
END;
--将复制对象增加到复制组中
--主键所用的索引自动复制,其他索引需要明确添加到复制组中
BEGIN
DBMS_REPCAT.CREATE_MASTER_REPOBJECT (
gname => 'dbcard_mg',
type => 'TABLE',
oname => 'person',
sname => 'card',
use_existing_object => TRUE,
copy_rows => FALSE);
END;
--生成复制支持
BEGIN
DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (
sname => 'card',
oname => 'person',
type => 'TABLE',
min_communication => TRUE);
END;
--开始复制
BEGIN
DBMS_REPCAT.RESUME_MASTER_ACTIVITY (
gname => 'dbcard_mg');
END;
commit;
7. 建立物化视图
--以复制用户card连接到主站点
Conn card@dbname
--建立物化视图日志表,FAST 刷新方式必须要求建立物化视图日志,COMPLETE 则不需要
CREATE MATERIALIZED VIEW LOG ON card.person;
--建立复制用户到主站点代理刷新者的数据库链
CONNECT card@dbrep
CREATE DATABASE LINK dbname.dbcard CONNECT TO repadmin IDENTIFIED BY
repadmin;
--建立物化视图组
--以物化视图管理员身份登陆物化视图站点
CONNECT mvadminmvadmin@yangtk
--物化视图组必须和复制站点上的复制组名称相同
BEGIN
DBMS_REPCAT.CREATE_MVIEW_REPGROUP (
gname => 'dbcard_mg',
master => 'dbname.dbcard’,
propagation_mode => 'ASYNCHRONOUS');
END;
--创建刷新组
--对于只包含只读物化视图的站点,不需要此步骤
BEGIN
DBMS_REFRESH.MAKE (
name => 'mvadmin.rep_dbcard',
list => '',
next_date => SYSDATE,
interval => 'SYSDATE + 11440',
implicit_destroy => FALSE,
rollback_seg => '',
push_deferred_rpc => TRUE,
refresh_after_errors => FALSE);
END;
--创建物化视图
--对于只读物化视图,省略FOR UPDATE 语句
CREATE MATERIALIZED VIEW card.person
REFRESH FAST WITH PRIMARY KEY FOR UPDATE
AS SELECT * FROM card.person@dbname.dbcard
--将物化视图添加到物化视图组
--对于只读物化视图,此步骤可以省略
BEGIN
DBMS_REPCAT.CREATE_MVIEW_REPOBJECT (
gname => 'dbcard_mg',
sname => 'card',
oname => 'person',
type => 'SNAPSHOT',
min_communication => TRUE);
END;
--将物化视图添加到刷新组
BEGIN
DBMS_REFRESH.ADD (
name => 'mvadmin.rep_dbcard',
list => 'card.person',
lax => TRUE);
END;
commit;
************配置完成,数据变化测试同步情况******************
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/262478/viewspace-600567/ ,如需转载,请注明出处,否则将追究法律责任。