ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 传输表空间

传输表空间

原创 Linux操作系统 作者:xpj0515 时间:2010-11-08 21:06:29 0 删除 编辑

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博客 ” ,链接:https://blog.itpub.net/24890594/viewspace-677734/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 备份日记
下一篇: 复制数据库
请登录后发表评论 登录
全部评论

注册时间:2010-11-08

  • 博文量
    32
  • 访问量
    66184