传输表空间

1.首先验证数据库版本和平台是否支持,字节顺序

select d.name,d.platform_name,i.version,t.endian_format

from v$database d,v$instance i,v$transportable_platform. t

where t.platform_name=d.platform_name and  d.name=upper(i.instance_name) ;

 

2.验证表空间是否自包含,可以使用dbms_tts包检查

 

DBMS_TTS.TRANSPORT_SET_CHECK(tablespace_name,bool);

 

3.再检查视图TRANSPORT_SET_VIOLATIONS

 

Select * from  transport_set_violation  是否返回行

 

4.生成可传输表空间集,使用data dump导出表空间元数据,导出元数据必须将表空间置为只读状态

 

Alter tablespace ts_name read only;

 

Expdp sysname/password dumpfile=’file1.dmp’ directory=%%%   transport_tablespace= %% nologfile=%%%

 

Select file_name,tablespace_name from dba_data_files;

 

5.复制传输表空间对应数据文件file_name和元数据file1.dmp到目地数据库

并将传输的并空间置为读写状态

 

Alter tablespace ts_name read write;

 

6.检查传输表空间block_size的大小,相应调整db_nK_cache_size的大小

 

Alter system set db_nK_cache_size=’nM’;

 

7.导入元数据和将数据文件移动到相应位置,并将对应的表空间置为读写状态

 

 

使用RMAN传输表空间

 

使用rman实现表空间的传输与用户命令的传输的原理不同,rman传输表空间使用备份集中的数据构建,其中传输过程中会构建一个辅助实例duplicate数据库时也要使用辅助实例(auxiliary instance),所以不需要将表空间置为只读

 

Transport tablespace t1,t2

Tablespace destination ‘%%%%%’

Auxiliary destination %%%%%

Until scn/time/restore point ‘%%%%’

Datadump directory %%%%%

Data file ‘%%%%’

Import script. ‘%%%%’

Export log ‘%%%%’;

表空间元数据 Export log存入Datadump directory 对应的路径

Import script等传输集相关文件和表空间数据文件 存入对应的路径Tablespace destination

辅助实例的system undo 等文件存入Auxiliary destination中,完成后自动删除

 

Import script不指定是默认自动生成impscrpt.Sql脚本,导入时也可以自己写脚本

 

生成传输集后移动到目标平台

执行导入即可,

并将表空间置为读写状态

PS:表空间传输可以简述为导入导出元数据外加数据文件

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

转载于:http://blog.itpub.net/24890594/viewspace-677734/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值