3.调度清除作业,该作业会定时清除延迟事务队列并用传播方将延迟事务推入其他主体站点或者实体化视图站点。先更换用户: , r9 j) {9 C7 v/ V& J
* e8 S+ P, N- D# `, k
disconnect;
& t: A/ U1 n8 T. L" mconnect repadmin/repadmin@SH; * ]) q. [2 V; Q4 Q/ k
begin # L$ v2 B( b+ H
dbms_defer_sys.schedule_purge(
. U' Q; d( D/ p. f. Enext_date=>sysdate,interval=>’sysdate + 1’,delay_seconds=>0); * e& F, Z B! F$ B% n
end; 1 C' d0 m% O) t. B
next_date:下一次执行日期,sysdate表示立即。
. P9 H( q" s( V5 }0 _& B! A* t) X. g& {4 Q1 l+ _ h% E& ]& t
interval:间隔时段,sysdate + 1表示间隔一天,sysdate+ 1/24表示间隔一小时1 ~% i% {( p. N# N% ?! E$ W
; k) g2 b( T# D# \ _: e' | delay_seconds:当延迟队列没有延迟事件时停止被次清除操作的延迟时间。- |0 W( A/ b8 i
) S0 y1 S0 D* b0 s( C4 L
4.为实体化视图站点建立复制代理。创建复制代理用户并授予视图接受方权限。复制代理是复制接收方连接主体站点的用户3 N! ^+ c# h5 K8 d b3 L9 k
% \6 t2 z4 K! x( B5 kdisconnect; & K( q- v& E/ p! q: w5 f
connect system/passwd@SH;
9 o# t6 R% |" ?4 C) O( |create user proxy_bjoracle identified by proxy_bjOracle; ( ^% l7 A& [4 F6 Z8 J2 q; z
begin / i, B2 V. B: R
dbms_repcat_admin.register_user_repgroup(
+ ^; Q" d7 \/ F3 muser_name=>’proxy_bjOracle,
! ]: G* p5 y5 d) aprivilege_type => ’proxy_snapadmin’,list_of_gnames => NULL); : N1 \, x/ l1 _2 e% M6 z. f
end; / s' s. [; m& C2 t% y; G
/
9 D/ L6 O' {. L# w7 bgrant select_catalog_role to proxy_bjOracle; 0 W8 Y) b$ o9 o3 R' Y
5. 创建主体组。
5 _) F, i$ F- Y6 ]+ {! x' i1 ?. O* a! v
disconnect;
6 A c) s7 ~2 |/ H* Oconnect repadmin/repadmin@SH;
& F, k5 V: J" R3 ^- |begin 9 b$ ^$ X d% v
dbms_repcat.create_master_repgroup(gname=>’sh_rep’);
, Q# y" g; _7 h6 aend;
# s# t7 H* q+ V" d, d6 {& h/ 6. 向主体组中添加复制对象
/ M: x, }9 [7 |
2 ~, {9 U$ [8 e1 z- u a) 添加表:
* V& w) h. H! c# v, N2 V
q0 q; p# D$ ~0 nbegin * m$ T/ n- r7 _1 U
dbms_repcat.create_master_repobject( ! D* F4 E3 P8 ]: S, P0 Y
gname=>’sh_rep’,
- E$ c) R) n* h% p f* a) @type=>’TABLE’,
, @0 {4 x1 T& |$ Y4 noname=>’ CREDIT_CARD’ . B# {* n. t6 X" p
sname=>’SHORACL’ - [+ |3 [) ?- k* t3 {
use_existing_object=>TRUE, 4 a% Y" y# I# f8 Y$ i7 `, c6 h
copy_rows=>TRUE); + o5 g2 J/ q5 T' k( P O
end;
# g1 ^( R) n: l b) 添加索引2 O! {9 E5 c4 F* X' g' t
3 N3 |$ ]6 K/ I- C1 T* i
begin & g) ^: y* n: u, @5 v9 u+ ?
dbms_repcat.create_master_repobject( , }( [3 i6 A/ w
gname=>’sh_rep’, 9 I. L' R1 c5 }7 e1 w% M1 P
type=>’INDEX’,
, w9 e# z0 {- _- s" F }& V8 _$ d% Loname=>’ INDEX_CREDIT_CARD’
4 C5 j' y m, c W) ~' t8 K$ @sname=>’SHORACL’ & Z* b5 ?4 L% G& u' m8 \5 j: m
use_existing_object=>TRUE, 2 u& y+ ?2 o1 P! u- G8 n( K y
copy_rows=>FALSE); 9 g2 @6 ~1 d. x0 r7 u9 Y6 ^
end; + I, B, O! e, Z* A6 R
/ ' o/ P- I0 R h5 s; R1 b4 w2 H; ~
7. 如果添加的表没有主键需要设置可以代替主键的列或者列的集合
1 f2 R# @+ r% z! y9 l" L
; j8 r y8 n7 H) pbegin
; a* h5 W6 b* K, }dbms_repcat.set_columns( 8 e8 b, N+ ^4 H. W1 b2 L( q
sname => ’SHORACL’,
# M$ \! \ d& ^) D* moname => ’ CREDIT_CARD ’, " ?! o; G: N) `* t
column_list => ’ CREDIT_CARD_ID’); ( U c& A- o& o: b! O+ u
end; , r/ Z; s1 X: r4 n6 m# r* @
/
P' Q3 H- F$ f0 L; j& @ 8. 在主体组中的数据对象可以被复制之前,必须为他们生成复制支持。该方法为复制创建必要的触发器、包或者存储过程: : }; l" p3 w" D# l: K& X, X% j
/ w, `1 ]. M6 j. v
begin + ~' M6 V6 U& V d1 @; |
dbms_repcat.generate_replication_support(
$ b |, E5 x' Y& y5 S. i! ]& [sname=>’SHORACL’, $ P! y% |; o, f: Z5 g( y- ]
oname=>’ CREDIT_CARD’,
; x5 I# o6 A$ b4 I8 @2 D/ Xtype=>’TABLE’, 3 Z! X3 J6 Q# n8 D x1 [
min_communication=>TRUE);
- z8 _! H+ z4 A5 yend;
9 L+ M8 y8 J& ?- a/ R6 {/
" j/ B9 Q! |9 w# x 9. 为快速刷新创建实体化视图日志:
& i- S$ t8 ]2 M. `3 p' Y' J+ P* L _' L
create materialized view log on SHORACL. CREDIT_CARD; ; Q; E1 `0 J( k' S) e) r: D
如果是没有主键的表示用一下语句: ! _. f" k7 c/ j$ U8 z8 ?
3 ?& E; |! P% j& U$ |; {create materialized view log on SHORACL. CREDIT_CARD with ' K( O( t! D: r1 v, N8 s
rowid excluding new values;
J3 J) Q- m3 p2 S4 o 10.启动复制: 7 a" G) q: L, n/ L# I+ o* ~& J- b
% y& g. ^$ _6 m+ H+ _1 k, i) G5 ^
begin
* g4 K! i+ d& I/ Wdbms_repcat.resume_master_activity( 8 p4 e) ]$ }0 U6 [. H0 v, f; S% `. y
name=>’sh_rep’); 7 c# u( c5 l7 |9 y* r. N
end; . g- h4 P& L3 t+ o$ W2 w
/ |