Streams实践之Schemas级复制

1. 源与目标数据库的配置

  参考前几个操作

2. 创建相关的操作目录

3. 设置归档路径(源数据库操作) - 如果采用下游捕获的方式

  sql> alter system set log_archive_dest_2=¨service=auxi.jss.cn lgwr async noregister¨;

4. 检查是否包含表空间

sql> set serveroutput on

sql> exec sys.dbms_tts.transport_set_check('scott',true,true);

sql> select * from sys.transport_set_violations; 

  返回为空,说明没有问题。

5. 清除之前的复制环境,并删除目标端schema下所有对象。

6. 执行MAINTAIN_SCHEMAS脚本

sql> DECLARE

   1 tab_schema   dbms_utility.uncl_array;

   2 Begin

   3 tab_schema(1):='scott';

   4 DBMS_STREAMS_ADM.MAINTAIN_SCHEMAS(

    5 schema_names                 => tab_schema,

   6 source_directory_object      => 'orcldump',

    7  destination_directory_object => 'auxidump',

   8  source_database              => 'orcl.jss.cn',

   9  destination_database         => 'auxi.jss.cn,

   10 perform_actions              => true,

   11 dump_file_name               => 'export_member.dmp',

  12  log_file                     => 'export_member_expdp.log',

  13      bi_directional               => true,

  14      include_ddl                  => true,

  15      instantiation                => DBMS_STREAMS_ADM.INSTANTIATION_SCHEMA);

  16  END;

  17  /

instantiation 参数用来指定是否执行实例化,有如下几种值:

DBMS_STREAMS_ADM.INSTANTIATION_SCHEMA :通过expdp/impdp初始化数据,并在目标端导入数据时执行实例化,默认情况下即是该值。

DBMS_STREAMS_ADM.INSTANTIATION_SCHEMA_NETWORK :impdp直接通过网络传输数据而不生成dmp文件。在导入数据时执行实例化。

DBMS_STREAMS_ADM.INSTANTIATION_NONE :不执行实例化,该属性值仅当perform_actions参数设置为false时有效。

原文地址:https://www.cnblogs.com/landexia/p/2657296.html