ITPub博客

首页 > 数据库 > Oracle > 使用RMAN完成跨平台数据迁移

使用RMAN完成跨平台数据迁移

Oracle 作者:xypincle 时间:2017-03-25 16:46:20 0 删除 编辑

1、  在源数据库上设置为只读模式(必须是在归档模式下):

Sql>shutdown immediate;

Sql>startup mount;

Sql>alter database open read only;

  2、  利用dbms_tdb包检查数据库能否被传输以及列出外部表和DIRECTORY等无法传输的对象信息(本例从windows2003x64迁移至redhat 5.8x64平台;实例是全库迁移,这个检查实际上并不起到实际的作用):

检查ORACLE支持转换的平台信息:

Sql> select * from V$TRANSPORTABLE_PLATFORM order by 3;

Sql>set serveroutput on

Sql>declare

           Db_ready Boolean;

Bein

                    Db_ready:=dbms_tdb.check(‘Linux x86 64-bit’,dbms_tdb.skip_none);

End;

/

结果为如下表示正常:

PL/SQL procedure successfully completed.

 Sql>declare

           External Boolean;

           Begin

                    external := dbms_tdb.check_external;

           end;

           /

如下结果只是SYS表对象可以不用考虑:

The following directories exist in the database:

SYS.DATA_PUMP_DIR, SYS.ORACLE_OCM_CONFIG_DIR, SYS.ADMIN_DIR, SYS.WORK_DIR,

SYS.EXPDIR

 

PL/SQL procedure successfully completed.

 

3、  开始进行数据文件转换(在源库中进行,需要先在阵列上建立目录f:\oralinux):

Rman target /

RMAN>convert database new database ‘ora92’

         transport script ‘f:\oralinux\transportdb.sql’

         to platform ‘Linux x86 64-bit’

         db_file_name_convert ‘f:\oracle\ora92\’ ‘f:\oralinux\’;

 

4、  修改f:\oralinux\transportdb.sql脚本,将源库中的涉及到的路径全部修改为LINUX对应的路径名称;

 

5、  将目标库上的ORACLE停止(之前已经在LINUX上创建过ora92实例),并且将原/u01/app/oracle/ora92更名为/u01/app/oracle/ora92local;

 

6、  拷贝数据文件(f:\oralinux\*.*)至linux的相应目录中(/u01/app/oracle/ora92),采用mput *.* .方式,之前先加入prompt以取消提示分个上传方式。

 

7、  开始恢复目标库(执行上传的脚本文件/u01/app/oracle/ora92/transportdb.sql建立控制文件内容,本例忽略建立SPFILE过程):

$sqlplus /nolog

Sql>startup nomount;

Sql>create controlfile reuse set database ‘ora92’

Resetlogs noarchivelog

……;

 

8、  重新启动数据库并执行打开数据库(可参阅transportdb.sql脚本内容):

Sql>shutdown immediate;

Sql>startup mount;

Sql>alter database open resetlogs;

--开始建立源库中的临时表空间

Sql>alter tablespace temp add tempfile size 2G autoextend on next 655360 maxsize 32767M;

Sql>alter tablespace zltooltmp add tempfile size 2G autoextend on next 655360 maxsize 32767M;

 

9、  最后还必须执行数据库特殊脚本:

Sql>shutdown immediate;

Sql>startup upgrade;

Sql>@?/rdbms/admin/utlirp.sql;      --注意脚本名称:utlirp.sql

Sql>shutdown immediate;

Sql>startup;

Sql>@?/rdbms/adminutlrp.sql;        --注意脚本名称:utlrp.sql

 

至此跨平台同版本同字节数据库迁移完成。

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

上一篇: RMAN命令大全
请登录后发表评论 登录
全部评论

注册时间:2013-05-11

  • 博文量
    208
  • 访问量
    212338