--外網作為SNAPSHOT
--創建外網用戶HOLEN
CONN SYSTEM/PASSWORD@ORAWAI
--創建普通用戶
CREATE USER "HOLEN" PROFILE "DEFAULT" IDENTIFIED BY "HOLEN";
GRANT "CONNECT" TO "HOLEN";
GRANT "DBA" TO "HOLEN";
GRANT "RESOURCE" TO "HOLEN";
--創建repadmin用戶管理快照端復制環境
CREATE USER REPADMIN IDENTIFIED BY REPADMIN;
ALTER USER REPADMIN DEFAULT TABLESPACE USERS;
ALTER USER REPADMIN TEMPORARY TABLESPACE TEMP;
GRANT connect, resource TO REPADMIN;
--授予repadmin用戶權限可以管理當前站點中任何主體組
EXECUTE dbms_repcat_admin.grant_admin_any_schema('REPADMIN');
--授予repadmin用戶權限可以為任何表創建snapshot logs
GRANT comment any table TO REPADMIN;
GRANT lock any table TO REPADMIN;
--指定repadmin用戶為propagator,并授予執行任何procedure的權限
EXECUTE dbms_defer_sys.register_propagator('REPADMIN');
GRANT execute any procedure TO REPADMIN;
--授予repadmin用戶可以創建快照
GRANT create any snapshot TO REPADMIN;
GRANT alter any snapshot TO REPADMIN;
--在外網建立與內網的鏈接
--在外網端需要把ORANEI添加到樹
CREATE PUBLIC DATABASE LINK ORANEI CONNECT TO REPADMIN IDENTIFIED BY REPADMIN USING ' ORANEI ';
--在外網建立刷新組 HOLEN_REFRESH
BEGIN
DBMS_REFRESH.MAKE(
name => '"HOLEN"."HOLEN_REFRESH"',
list => '',
next_date => SYSDATE,
interval => '/*1:Mins*/ sysdate + 1/(60*24)',
implicit_destroy => FALSE,
lax => FALSE,
job => 0,
rollback_seg => NULL,
push_deferred_rpc => TRUE,
refresh_after_errors => TRUE,
purge_option => NULL,
parallelism => NULL,
heap_size => NULL);
END;
/
--在外網建立快照組
BEGIN
DBMS_REPCAT.CREATE_SNAPSHOT_REPGROUP(
gname => '"HOLEN_MASTER"',
master => 'ORANEI.US.ORACLE.COM',
propagation_mode => 'ASYNCHRONOUS');
END;
/
--建立快照,快照要在表所屬的用戶下建立,本例要先用HOLEN用戶登陸
CONNECT HOLEN/HOLEN;
--建立快照LAWTABLE
CREATE SNAPSHOT "HOLEN"."LAWTABLE"
REFRESH FAST FOR UPDATE
AS SELECT * FROM "HOLEN"."LAWTABLE"@ ORANEI.US.ORACLE.COM C
/
--將快照加入刷新組
BEGIN
DBMS_REFRESH.ADD(
name => '"HOLEN"."HOLEN_REFRESH"',
list => '"HOLEN"."LAWTABLE"',
lax => TRUE);
END;
/
--將快照加入快照組
BEGIN
DBMS_REPCAT.CREATE_SNAPSHOT_REPOBJECT(
gname => '"HOLEN_MASTER"',
sname => '"HOLEN"',
oname => '"LAWTABLE"',
type => 'SNAPSHOT',
min_communication => FALSE);
END;
/
--建立快照REGISTER
CREATE SNAPSHOT "HOLEN"."REGISTER"
REFRESH FAST FOR UPDATE
AS SELECT * FROM "HOLEN"."REGISTER"@ ORANEI.US.ORACLE.COM C
/
--將快照加入刷新組
BEGIN
DBMS_REFRESH.ADD(
name => '"HOLEN"."HOLEN_REFRESH"',
list => '"HOLEN"."REGISTER"',
lax => TRUE);
END;
/
--將快照加入快照組
BEGIN
DBMS_REPCAT.CREATE_SNAPSHOT_REPOBJECT(
gname => '"HOLEN_MASTER"',
sname => '"HOLEN"',
oname => '"REGISTER"',
type => 'SNAPSHOT',
min_communication => FALSE);
END;
/
--外網端(SNAPSHOT)配置完畢 |