在oracle10g中,表空间的传输特性,增强了数据在不同的平台上快速转换提供了更强大的功能.
以下是利用oracle的表空间的传输特性,进行快速的数据移植的操作方法:
9i 只能在相同平台中移植, 10g 中可以实现不同平台的移植,只要操作系统字节顺序相同,如果不同可以进行相互转换。
1) 查询操作系统的字节顺序
select * from v$transportable_platform order by platform_id;
2) Users表空间从Intel架构的windows系统移植到windows系统的操作:
--表空间只读
alter tablespace users read only;
--导出表空间
exp tablespaces=users transport_tablespace=y file=e:/exp_ts_users.dmp
--删除目标系统的users表空间,drop tablespace users
--将dmp文件和users表空间的文件复制到目标系统的对应位置
--将表空间导入到目标数据库中
imp tablespaces=users transport_tablespace=y file=exp_ts_users.dmp datafiles='e:/users01.dbf'
3) 跨不同字节顺序的平台Linux——>HP-UX上
--表空间只读
alter tablespace users read only;
--导出表空间
exp tablespaces=users transport_tablespace=y file=e:/exp_ts_users.dmp
--删除目标系统的users表空间,drop tablespace users
--在源平台上利用rman进行字节转换
RMAN>convert tablespace users to platform 'HP-UX(64-bit)' format='/rman_backup/%N_%f' (parallelism=4);
或:
RMAN>convert tablespace users,tools to platform 'HP-UX(64-bit)' format='/rman_backup/%N_%f' parallelism=5;
或(保持原来的数据文件的名字):
RMAN>convert tablespace users to platform 'HP-UX(64-bit)' db_file_name_convert '/oradata/dw01/dw10','/rman_backup';;
--将dmp文件和users表空间转换后的文件复制到目标系统的对应位置
--另:先将users表空间的文件复制到目标数据库的对应的位置,后在目标平台上转换数据库文件格式
--rman> convert datafile '/oradata/dw01/dw10/user01.dbf' format='rman_backups/%N_%f';
--将表空间导入到目标数据库中
imp tablespaces=users transport_tablespace=y file=exp_ts_users.dmp datafiles='e:/users01.dbf'