| « | 七月 2008 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
测试目标:建立schema到schema的复制
1.创建queue
db01
declare
BEGIN
DBMS_STREAMS_ADM.SET_UP_QUEUE(
queue_table => 'streamadmin.str_source_queue_table',
queue_name => 'streamadmin.str_source_queue');
END;
/
db02
declare
BEGIN
DBMS_STREAMS_ADM.SET_UP_QUEUE(
queue_table => 'streamadmin.str_dest_queue_table',
queue_name => 'streamadmin.str_dest_queue');
END;
/
2.创建 propagation
on db01
BEGIN
DBMS_STREAMS_ADM.add_schema_propagation_rules(
schema_name => 'test',
streams_name => 'db01_db02',
source_queue_name => 'streamadmin.str_source_queue',
destination_queue_name => 'streamadmin.str_dest_queue@db02',
include_dml => true,
include_ddl => true,
include_tagged_lcr => false,
source_database => 'db01',
inclusion_rule => true,
queue_to_queue => true);
END;
/
3.create apply process
on db02
declare
BEGIN
DBMS_STREAMS_ADM.ADD_schema_RULES(
schema_name => 'test',
streams_type => 'apply',
streams_name => 'apply_db02',
queue_name => 'streamadmin.str_dest_queue',
include_dml => true,
include_ddl => true,
include_tagged_lcr => false,
source_database => 'db01',
inclusion_rule => true);
END;
/
declare
BEGIN
DBMS_APPLY_ADM.SET_PARAMETER(
apply_name => 'apply_stream',
parameter => 'disable_on_error',
value => 'n');
END;
/
declare
BEGIN
DBMS_APPLY_ADM.START_APPLY(
apply_name => 'apply_db02');
END;
/
4.创建capture
on db01
declare
BEGIN
DBMS_STREAMS_ADM.add_schema_rules(
schema_name => 'test',
streams_type => 'capture',
streams_name => 'capture_db01',
queue_name => 'streamadmin.str_source_queue',
include_dml => true,
include_ddl => true,
inclusion_rule => true);
END;
/
exp test/test@db01 consistent=y file=test.dmp log=test_exp.log
imp test/test@db02 file=test.dmp log=test_imp.log STREAMS_INSTANTIATION=y
5.启动captures
on db01
declare
BEGIN
DBMS_CAPTURE_ADM.START_CAPTURE(
capture_name => 'capture_db01');
END;
/
6.test
on db01
insert into test.t1 values(1,'1');
insert into test.t2 values(1,'1');
commit;
alter table test.t2 drop column name;