用dbms_streams_tablespace_adm表空间的迁移(3)

这次迁移的表空间由于保存在异地,因此无法通过PULL过程来实现,比如分成CLONE和ATTACH两个阶段。且由于当前的表空间包含多个数据文件,因此不能使用SIMPLE方法,只能通过CLONE_TABLESPACES或DETACH_TABLESPACES过程来实现。又因为源数据库表空间不打算删除,因此使用CLONE_TABLESPACES过程来实现迁移。[@more@]数据库版本、数据块大小、以及字符集和自包含的检查都跳过

源数据库:

需先建立存放dump file的目录

SQL> CREATE OR REPLACE DIRECTORY D_TRANS AS '/u01/trans';

Directory created.

SQL> grant read,write on directory D_TRANS to system;

Grant succeeded.


SQL> select * from dba_directories where directory_name like 'D_DATAFILE%'
2 union all
3 select * from dba_directories where directory_name like 'D_TRANS';

OWNER DIRECTORY_NAME DIRECTORY_PATH
------------------------------ --------------- --------------------------------------------------
SYS D_DATAFILE /u01/app/oracle/oradata/orcl
SYS D_DATAFILE_2 /u02/app/oracle/oradata/orcl
SYS D_TRANS /u01/trans


下面就可以执行CLONE_TABLESPACES过程了,需要注意,这个过程的输入参数包括了索引组织表类型和记录,因此需要通过建立一个

PL/SQL匿名块来完成调用,注意输入参数变量的声明需要用DBMS_STREAMS_TABLESPACE_ADM包中的类型进行声明,否则调用会报错:


SQL> SET SERVEROUT ON SIZE 1000000
SQL> DECLARE
2 V_JOB_NAME VARCHAR2(30) := 'MY_CLONE_TABLESPACES';
3 V_TABLESPACE_NAME DBMS_STREAMS_TABLESPACE_ADM.TABLESPACE_SET;
4 V_DIRECTORY_NAME DBMS_STREAMS_TABLESPACE_ADM.DIRECTORY_OBJECT_SET;
5 V_DUMPFILE DBMS_STREAMS_TABLESPACE_ADM.FILE;
6 V_LOGFILE DBMS_STREAMS_TABLESPACE_ADM.FILE;
7 V_DATAFILES DBMS_STREAMS_TABLESPACE_ADM.FILE_SET;
8 BEGIN
9 V_TABLESPACE_NAME(1) := 'NADSPACE';
10 V_DIRECTORY_NAME(1) := 'D_TRANS';
10 V_DUMPFILE.DIRECTORY_OBJECT := 'D_TRANS';
12 V_DUMPFILE.FILE_NAME := 'NADSPACE_091027.dp';
13 V_LOGFILE.DIRECTORY_OBJECT := 'D_TRANS';
14 V_LOGFILE.FILE_NAME := 'NADSPACE_091027.log';
15 DBMS_STREAMS_TABLESPACE_ADM.CLONE_TABLESPACES(V_JOB_NAME,
16 V_TABLESPACE_NAME,
17 V_DUMPFILE,
18 V_DIRECTORY_NAME,
19 NULL,
20 V_LOGFILE,
21 V_DATAFILES);
22 FOR I IN 1..V_DATAFILES.COUNT LOOP
23 DBMS_OUTPUT.PUT_LINE(V_DATAFILES(I).FILE_NAME);
24 END LOOP;
25 END;
26 /
NADSPACE001.dbf
NADSPACE002.dbf
NADSPACE003.dbf
NADSPACE004.dbf

PL/SQL procedure successfully completed.


[oracle@rhel130 trans]$ pwd
/u01/trans
[oracle@rhel130 trans]$ ls
NADSPACE001.dbf NADSPACE003.dbf NADSPACE_091027.dp
NADSPACE002.dbf NADSPACE004.dbf NADSPACE_091027.log


可以看到在directory里除生成了NADSPACE_091027.dp和NADSPACE_091027.log外,还把此表空间的datafile都copy到这个目录,这个对

于磁盘空间有限的系统会有点问题。

看一下日志文件:

[oracle@rhel130 trans]$ cat NADSPACE_091027.log
Starting "SYSTEM"."MY_CLONE_TABLESPACES":
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/INDEX
Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "SYSTEM"."MY_CLONE_TABLESPACES" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.MY_CLONE_TABLESPACES is:
/u01/trans/NADSPACE_091027.dp
Job "SYSTEM"."MY_CLONE_TABLESPACES" successfully completed at 17:45:40


至此CLONE_TABLESPACES的过程完成。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/271283/viewspace-1028181/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/271283/viewspace-1028181/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值