streams流复制中如何初始化复制对象
http://www.eygle.com/archives/2007/11/streams_instantiated_objects.html
在Streams复制中,可以通过exp/imp方式进行数据初始化,也可以通过DBMS_APPLY_ADM来设置。
通常通过DBMS_APPLY_ADM.SET_SCHEMA_INSTANTIATION_SCN来进行SCHEMA级别的设置:
SQL> DECLARE
2 v_scn NUMBER;
3 BEGIN
4 v_scn := DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER();
5 DBMS_APPLY_ADM.SET_SCHEMA_INSTANTIATION_SCN@test97(
6 SOURCE_SCHEMA_NAME => 'SCOTT',
7 source_database_name => 'TEST201',
8 instantiation_scn => v_scn,
9 RECURSIVE => true );
10 END;
11 /
PL/SQL procedure successfully completed.
在目标数据库我们可以通过查询dba_apply_instantiated_objects字典表来确认初始化是否成功:
SQL> col source_database for a20
SQL> col source_object_name for a15
SQL> select source_database,source_object_name,instantiation_scn from dba_apply_instantiated_objects;
SOURCE_DATABASE SOURCE_OBJECT_N INSTANTIATION_SCN
-------------------- --------------- -----------------
TEST201.EYGLE.COM DEPT 6141033
TEST201.EYGLE.COM EMP 6141033
TEST201.EYGLE.COM BONUS 6141033
TEST201.EYGLE.COM SALGRADE 6141033
这是最常用的快速有效数据初始化方式。