Streams实践之表空间级复制

1. 源与目标数据库初始化参数设置  

   Streams那些事之初始化参数设置

注意:要复制的表空间中对象所属schema在目标端也必须存在,因此这里,目标端也需要创建(例如:member)这个用户。

2. 创建相关的操作目录

首先在源端创建数据泵文件中转目录:

 JSSWEB> conn strmadmin/strmadmin

 JSSWEB> create directory mydt _source  as 'c:\learnoracle\jssweb';

 另外,源端还需要创建一个directory对象,指向到要复制的表空间对应数据文件所在路径:

 JSSWEB> create directory dfpath as 'c:\oradata\jssweb';

提示:如果表空间对应的数据文件在多个不同路径下,那就得创建多个directory,这个非常重要,maintain_tts在执行时需要读取这部分信息复制数据文件。

目标端创建创建数据文件目录:

 JSSSTR> conn strmadmin/strmadmin

 已连接。

 JSSSTR> create directory mydt _dest  as 'C:\oradata\jssstr';

 目录已创建。

  注意,要确认c:\learnoracle\jsswebC:\oradata\jssstr目录在各自操作系统中确实存在,不然后面执行expdp/impdp时会报错。

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. 执行脚本

ORCL>    declare
  2  t_names dbms_streams_tablespace_adm.tablespace_set;
  3  begin
  4  t_names(1):='users';
  5  dbms_streams_adm.maintain_tts(
  6  tablespace_names=>t_names,
  7  source_directory_object=>'orcldump',
  8  destination_directory_object=>'auxidump',
  9  source_database=>'orcl.jss.cn',
 10  destination_database=>'auxi.jss.cn',
 11  perform_actions=>true,
 12  bi_directional=>false,
 13  include_ddl=>true);
 14  end;
 15  /

posted @ 2012-08-26 17:35  南宫元耘  阅读(206)  评论(0编辑  收藏  举报