Oracle 传输表空间迁移数据总结

php中文网
发布: 2016-06-07 17:03:10
原创
1046人浏览过

Oracle 传输表空间迁移数据总结注意:迁移表空间之前必需先建立相对应的用户,要不然会迁移不成功的。有时,我们需要把比较大的数

Oracle 传输表空间迁移数据总结

注意:迁移表空间之前必需先建立相对应的用户,要不然会迁移不成功的。

有时,,我们需要把比较大的数据进行跨平台(10G支持跨平台)的迁移,使用EXP/IMP等方法很慢,可以通过传输表空间快速安全的实现。此操作需要在SYSDBA的权限下进行,具体步骤如下:

1.检查所要迁移的表空间是否自包含(就是检测是否符合传输表空间的基本条件)
 exec sys.dbms_tts.transport_set_check('tablespace_name',true);
 select * from sys.transport_set_violations;
 如果无记录返回,则说明符合传输表空间的条件,如果有记录返回则不符合。

2.设置所要传输的表空间为只读
alter tablespace tablespace_name read only;

3.使用exp工具导出所要传输表空间的元数据(metadata)
exp userid=\'sys/lclsys2008 as sysdba\' file=/opt/test.dmp log=/opt/test.log transport_tablespace=y tablespaces=tablespace_name
注意:这里使用SYSDBA时需要转义字符,在LINUX下用\',WINDOWS下使用单引号就可以

Hugging Face
Hugging Face

Hugging Face AI开源社区

Hugging Face 270
查看详情 Hugging Face

4.使用RMAN转换所要传输的表空间的数据文件头为目标系统文件
 登陆RMAN: rman target /
 rman>convert tablespace "TABLESPACE_NAME" to platform 'Linux IA (32-bit)' format 'D:\xxx.dbf'
 注意:TABLESPACE_NAME为传输表空间的名称,需要使用双引号且大写,Linux IA (32-bit)为目标平台的名称,可以在目标平台数据库中通过select platform_name form v$database来查询。

5.复制表空间转换后的数据文件及导出文件到目标平台

6.使用IMP工具加载数据库文件到目标平台

 imp userid=\'sys/ad as sysdba\' file=expdat.dmp transport_tablespace=y datafiles=('D:\xx.dbf') tablespaces=tablespace_name
 注意:在使用IMP和EXP时尽量使用相同的版本,以避免操作失败。

补充一点,在piner的书提到,就是seq,function,proc,view等元数据并没有迁移过来,需要再执行一次迁移。
就是执行一次exp ...  rows=n
再imp导入才行。

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号