четверг, 13 ноября 2014 г.

Stream таблиц

создать пользователей STREAM_ADMIN на обоих базах

DECLARE
tables varchar2(4000);
BEGIN
tables := '"SHM1"."TABLE1",
"SHM1"."TABLE2"';
DBMS_STREAMS_ADM.MAINTAIN_TABLES(
table_names   => tables,
source_directory_object      =>      'DTPUMP',
destination_directory_object     =>      'DTPUMP',
source_database          =>      'src.domain',
destination_database         =>      target.domain',
perform_actions              =>      TRUE,
script_name                      =>      'streams_setup.sql',
script_directory_object          =>      'DTPUMP',
dump_file_name               =>      'streams_setup.dmp',
capture_queue_user           =>       '"STREAM_ADMIN"',
apply_queue_user             =>      '"STREAM_ADMIN"',
log_file                 =>      'streams_setup.log',
bi_directional               =>      false,
include_ddl                  =>      true);
END;
/


на исходной базе пронать инициализацию
BEGIN
for rec in (select distinct schema_name||'.'||object_name  as tbl from ALL_STREAMS_RULES)
loop
DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION (
  table_name   => rec.tbl
, supplemental_logging => 'all'
);
end loop;
END;
/

<scn>=select DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER from dual


на таргетной тоже, scn взять с исходной

BEGIN
for rec in (select distinct schema_name||'.'||object_name  as tbl from ALL_STREAMS_RULES)
loop
DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN (
  source_object_name   => rec.tbl
, source_database_name => 'target.domain'
, instantiation_scn    => <scn>
);
end loop;
END;
/



Комментариев нет:

Отправить комментарий