利用数据泵实现表空间迁移

利用数据泵实现表空间迁移


1、查看源数据库的信息

sql> select tablespace_name,file_name from dba_data_files;
TABLESPACE_NAME                FILE_NAME
------------------------------ ----------------------------------------
USERS                          /u01/oradata/ora10/users01.dbf
SYSAUX                         /u01/oradata/ora10/sysaux01.dbf
UNDOTBS1                       /u01/oradata/ora10/undotbs01.dbf
SYSTEM                         /u01/oradata/ora10/system01.dbf
TEST1                          /u01/oradata/ora10/test1.dbf

sql> select * from v$version;
banner
----------------------------------------------------------------------------
oracle database 11g enterprise edition release 11.1.0.6.0 - 64bit production
pl/sql release 11.1.0.6.0 - production
core 11.1.0.6.0 production
tns for solaris: version 11.1.0.6.0 - production
nlsrtl version 11.1.0.6.0 - production


sql> show parameter db_block_size
name          type    value
------------- ------- ------
db_block_size integer 32768

准备迁移test1表空间,数据库版本为11g,db_block_size为32k。


2、查看目标数据库的信息

sql> select tablespace_name, file_name from dba_data_files;
TABLESPACE_NAME                FILE_NAME
------------------------------ ----------------------------------------
USERS                          /u01/oradata/ora10/users01.dbf
SYSAUX                         /u01/oradata/ora10/sysaux01.dbf
UNDOTBS1                       /u01/oradata/ora10/undotbs01.dbf
SYSTEM                         /u01/oradata/ora10/system01.dbf

sql> select * from v$version;
banner
-----------------------------------------------------------------------------
oracle database 11g enterprise edition release 11.1.0.6.0 - 64bit production
pl/sql release 11.1.0.6.0 - production
core 11.1.0.6.0 production
tns for solaris: version 11.1.0.6.0 - production
nlsrtl version 11.1.0.6.0 - production

sql> show parameter db_block_size

name          type    value
------------- ------- -----
db_block_size integer 8192

表空间test1在目标数据库不存在,可以执行表空间迁移,目标数据库和源数据库版本一致,且都是solaris下数据库,符合表空间迁移的要求,唯一需要注意的是,目标数据库和源数据库的block_size大小不一致,这里需要设置目标数据库的db_32k_cache_size使得32k的表空间可以在目标数据库中加载:

sql> alter system set db_32k_cache_size = 64m;


3、在源数据库中将要迁移的表空间设置为只读状态:
sql> alter tablespace test1 read only;


4、利用数据泵expdp导出test1表空间
$ expdp system/password directory=test_dump dumpfile=t1.dmp transport_tablespaces=test1 transport_full_check=y

完成导出后,下面将test1.dbf数据文件和t1.dmp导出文件拷贝到目标数据库所在服务器


5、将源数据库的表空间至于读写状态:
sql> alter tablespace test1 read write;


6、在目标数据库通过impdp来加载迁移表空间了:
$ impdp system/password directory=d_output dumpfile=trans_test.dp transport_datafiles='/export/home/oracle/test01.dbf'


7、在目标数据库进行检查,可以发现,test表空间以及加载到目标数据库中:
sql> select tablespace_name, file_name from dba_data_files;
TABLESPACE_NAME                FILE_NAME
------------------------------ ----------------------------------------
USERS                          /u01/oradata/ora10/users01.dbf
SYSAUX                         /u01/oradata/ora10/sysaux01.dbf
UNDOTBS1                       /u01/oradata/ora10/undotbs01.dbf
SYSTEM                         /u01/oradata/ora10/system01.dbf
TEST1                          /u01/oradata/ora10/test1.dbf

 

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

转载于:http://blog.itpub.net/17012874/viewspace-693303/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值