ITPub博客

首页 > 数据库 > Oracle > Converting Oracle Database from Windows to Linux using RMAN

Converting Oracle Database from Windows to Linux using RMAN

原创 Oracle 作者:lusklusklusk 时间:2017-03-14 10:30:57 0 删除 编辑
源端windows执行如下语句,看是否可以转换到目标端
select * from V$DB_TRANSPORTABLE_PLATFORM
V$DB_TRANSPORTABLE_PLATFORM displays all platforms to which the database can be
transported using the RMAN CONVERT DATABASE command. The transportable
database feature only supports transports of the same endian platform




1.查出源端windows下DB的v$database.platform_id和v$database.platform_name
12
Microsoft Windows x86 64-bit


2.查出目标端linux下DB的v$database.platform_id和v$database.platform_name
13
Linux x86 64-bit


3.源端windows下DB启动到open read only
shutdown immediate;
startup mount;
alter database open read only;


4.源端windows执行如下

declare
v_return boolean;
begin
v_return:=dbms_tdb.check_db('Linux x86 64-bit');
end;

declare
v_return boolean;
begin
v_return:=dbms_tdb.check_external;
end;

Linux x86 64-bit就是目标端linux的v$database.platform_name
以上两个语句不报错就可以了


5.源端windows下备份
rman>convert database new database 'HYPRD' transport script 'c:\test\transport.sql'
db_file_name_convert 'D:\ORACLE\ORADATA\HYPRD' 'c:\test' to platform 'Linux x86 64-bit';

c:\test\transport.sql就是源端windows导出来的控制文件
D:\ORACLE\ORADATA\HYPRD就是源端windows的数据库文件路径
c:\test就是源端windows导出数据库文件的存放路径
Linux x86 64-bit就是目标端linux的v$database.platform_name


6.源端windows下创建pfile(个人的实验过程中没有做这个动作,因为之前已经在目标端创建了一个和源端一样dbname的空数据库)
create pfile='c:\test\pfile.ora' from spfile;


7.把windows源端所有c:\test下所有文件拷贝到linux目标端的一个临时目录如/home/oracle/rman


8.linux目标端建立用于rman恢复的目录(个人的实验过程中没有做这个动作,因为之前已经在目标端创建了一个和源端一样dbname的空数据库)
$ORACLE_BASE/admin/SID/adump
$ORACLE_BASE/admin/SID/bdump
$ORACLE_BASE/admin/SID/cdump
$ORACLE_BASE/admin/SID/udump
$ORACLE_BASE/fast_recovery_area
$ORACLE_BASE/oradata/SID


9.把从源端windows下拷贝过来的.dbf的数据库文件从/home/oracle/rman移动到$ORACLE_BASE/oradata/SID/(个人实验过程中,还去先删除$ORACLE_BASE/oradata/SID/原来的空数据库文件)


10.把从windows下拷贝过来的pfile文件进行修改,指定相关文件的目录(个人的实验过程中没有做这个动作,因为之前已经在目标端创建了一个和源端一样dbname的空数据库)
目标端spfile或pfile的*.control_files路径文件不需要修改为/home/oracle/rman/transport.sql
/home/oracle/rman/transport.sql是源端生成的控制文件,最后我们需要这个文件生成真正的控制文件(即目标端spfile或pfile的*.control_files值对应的文件)


11.把从windows下拷贝过来的controlfile文件即/home/oracle/rman/transport.sql进行修改,指定参数文件路径,数据文件路径,redo log路径,tempfile路径


12.保证linux目标库shutdown情况下,sqlplus执行/home/oracle/rman/transport.sql
cd /home/oracle/rman/
sqlplus / as sysdba
SQL>@transport.sql

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

请登录后发表评论 登录
全部评论
Welcome to Lukes DB HOME。 Oracle OCM、Mysql OCP, 10年DBA工作经验,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    348
  • 访问量
    1174986