首页 > 数据库 > Oracle > 使用RMAN完成跨平台数据迁移
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/ ,如需转载,请注明出处,否则将追究法律责任。