如果尾数字节相同,则可以传输整个数据库;如果尾数字节不同,则只能传输表空间。由于传输整库后还需要重建控制文件比较麻烦,一般选择传输表空间。
尾数字节的查询如下:
点击(此处)折叠或打开
-
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;