从12c开始,跨平台传输表空间的方式有所不同,11g可见:http://blog.itpub.net/22621861/viewspace-1419810/
如果尾数字节相同,则可以传输整个数据库;如果尾数字节不同,则只能传输表空间。由于传输整库后还需要重建控制文件比较麻烦,一般选择传输表空间。
尾数字节的查询如下:
ENDIAN_FORMAT
--------------
Little
1. 源表空间设置为只读:
2. 假设计划传输的表空间在PDB中,则通过RMAN连接到PDB
完成后,指定路径下生成了表空间和导出的元数据文件。将这两个文件传输到目的端文件系统。
这里要注意:如果是RAC环境下,要确保连接到了自己期望的节点,连错节点将尝试在错误节点上生成传输表空间和元数据dump;另外,确保库是open的。
3. 由于导入时不会自动创建相关用户,因此需要提前创建用户并赋予权限,否则导入会失败:
4. 开始从RMAN导入目的库,这里也是一个PDB,在Windows 64-bit平台下:
这里的from platform取值,可以查询
5 . 如有必要,设置相关用户的默认表空间。
6. 将表空间设置为在线,当前应该是read only;(包括源数据库的表空间)
全部完成。
如果尾数字节相同,则可以传输整个数据库;如果尾数字节不同,则只能传输表空间。由于传输整库后还需要重建控制文件比较麻烦,一般选择传输表空间。
尾数字节的查询如下:
点击(此处)折叠或打开
- Select endian_format
- From v$transportable_platform tp, v$database d
- Where tp.platform_name=d.platform_name;
ENDIAN_FORMAT
--------------
Little
1. 源表空间设置为只读:
点击(此处)折叠或打开
- alter tablespace sh read only;
点击(此处)折叠或打开
- backup for transport
- format '/u01/trans/linux_sourcedb_%U'
- datapump format '/u01/trans/linux_expdp.dmp'
- tablespace sh;
这里要注意:如果是RAC环境下,要确保连接到了自己期望的节点,连错节点将尝试在错误节点上生成传输表空间和元数据dump;另外,确保库是open的。
3. 由于导入时不会自动创建相关用户,因此需要提前创建用户并赋予权限,否则导入会失败:
点击(此处)折叠或打开
- create user sh identified by sh;
- grant dba to sh;
点击(此处)折叠或打开
- restore from platform='Linux x86 64-bit'
- foreign tablespace sh
- format 'E:\ORADATA\EAST\B08200C9B49E4B509EA0F603F2E4FBBA\DATAFILE\SH01.DBF'
- from backupset
- 'E:\share\trans\linux_sourcedb_15r9f1kn_1_1'
- dump file datapump destination 'E:\share\trans'
- from backupset
- 'E:\share\trans\linux_expdp.dmp';
点击(此处)折叠或打开
- select platform_name from v$transportable_platform;
5 . 如有必要,设置相关用户的默认表空间。
点击(此处)折叠或打开
- alter user sh default tablespace sh;
点击(此处)折叠或打开
- alter tablespace sh read write;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22621861/viewspace-2121284/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22621861/viewspace-2121284/