ITPub博客

首页 > 数据库 > Oracle > 12c跨平台传输表空间

12c跨平台传输表空间

原创 Oracle 作者:hooca 时间:2016-06-30 17:11:28 0 删除 编辑
从12c开始,跨平台传输表空间的方式有所不同,11g可见:http://blog.itpub.net/22621861/viewspace-1419810/

如果尾数字节相同,则可以传输整个数据库;如果尾数字节不同,则只能传输表空间。由于传输整库后还需要重建控制文件比较麻烦,一般选择传输表空间。
尾数字节的查询如下:

点击(此处)折叠或打开

  1. Select endian_format
  2. From v$transportable_platform tp, v$database d
  3. Where tp.platform_name=d.platform_name;

ENDIAN_FORMAT
--------------
Little

1. 源表空间设置为只读:

点击(此处)折叠或打开

  1. alter tablespace sh read only;
2. 假设计划传输的表空间在PDB中,则通过RMAN连接到PDB

点击(此处)折叠或打开

  1. backup for transport
  2. format '/u01/trans/linux_sourcedb_%U'
  3. datapump format '/u01/trans/linux_expdp.dmp'
  4. tablespace sh;
完成后,指定路径下生成了表空间和导出的元数据文件。将这两个文件传输到目的端文件系统。
这里要注意:如果是RAC环境下,要确保连接到了自己期望的节点,连错节点将尝试在错误节点上生成传输表空间和元数据dump;另外,确保库是open的。

3. 由于导入时不会自动创建相关用户,因此需要提前创建用户并赋予权限,否则导入会失败:

点击(此处)折叠或打开

  1. create user sh identified by sh;
  2. grant dba to sh;
4. 开始从RMAN导入目的库,这里也是一个PDB,在Windows 64-bit平台下:

点击(此处)折叠或打开

  1. restore from platform='Linux x86 64-bit'
  2. foreign tablespace sh
  3. format 'E:\ORADATA\EAST\B08200C9B49E4B509EA0F603F2E4FBBA\DATAFILE\SH01.DBF'
  4. from backupset
  5. 'E:\share\trans\linux_sourcedb_15r9f1kn_1_1'
  6. dump file datapump destination 'E:\share\trans'
  7. from backupset
  8. 'E:\share\trans\linux_expdp.dmp';
这里的from platform取值,可以查询

点击(此处)折叠或打开

  1. select platform_name from v$transportable_platform;

5. 如有必要,设置相关用户的默认表空间。

点击(此处)折叠或打开

  1. alter user sh default tablespace sh;
6. 将表空间设置为在线,当前应该是read only;(包括源数据库的表空间)

点击(此处)折叠或打开

  1. alter tablespace sh read write;
全部完成。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22621861/viewspace-2121284/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-09-29

  • 博文量
    210
  • 访问量
    378343