ITPub博客

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

Converting Oracle Database from Linux to Windows using RMAN

原创 Oracle 作者:lusklusklusk 时间:2018-08-27 17:50:02 1 删除 编辑

1.查出源端linux下DB的v$database.platform_id和v$database.platform_name

select platform_id,platform_name from v$database

13   Linux x86 64-bit


查出目标端windows下DB的v$database.platform_id和v$database.platform_name

select platform_id,platform_name from v$database

12  Microsoft Windows x86 64-bit



2、查询源端和目标的字节序号v$transprotable_platform.endian_format是否一致,一致才可以迁移

select * from v$transportable_platform where platform_id in (12,13)



3.源端linux下DB启动到open read only

shutdown immediate;

startup mount;

alter database open read only;



4.源端linux执行如下

declare

v_return boolean;

begin

v_return:=dbms_tdb.check_db('Microsoft Windows x86 64-bit');

end;

/


declare

b boolean;

begin

b:=dbms_tdb.check_external;

end;

/

以上两个语句不报错就可以



5.源端linux下备份

rman>convert database transport script '/u02/backup/transport.sql' to platform 'Microsoft Windows x86 64-bit'

db_file_name_convert='/u01/app/oracle/oradata/hyprd/','/u02/backup/';

--以上如果在convert database后面加上 new database 'XX' 表示对要转换的目标数据库的数据文件生成新的数据库名,个人实验中没有做这个动作,因为目标端也想用源端的数据库名

/u02/backup/transport.sql就是源端linux导出来的控制文件

/u01/app/oracle/oradata/hyprd/就是源端linux的数据库文件路径

/u02/backup/就是源端linux导出数据库文件的存放路径

Microsoft Windows x86 64-bit就是目标端windows的v$database.platform_name



6、源端linux下创建pfile(个人的实验过程中没有做这个动作,因为之前已经在目标端创建了一个和源端一样dbname的空数据库)

create pfile='/u02/backup/pfile.ora' from spfile;



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


8.windows目标端建立用于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中的e:\oracle\backup文件都移动到$ORACLE_BASE/oradata/SID/(个人实验过程中,还去先删除$ORACLE_BASE/oradata/SID/原来的空数据库文件)



10.把从linux下拷贝过来的pfile文件进行修改,指定相关文件的目录(个人的实验过程中没有做这个动作,因为之前已经在目标端创建了一个和源端一样dbname的空数据库)

目标端spfile或pfile的*.control_files路径文件不需要修改为/u02/backup/transport.sql

/u02/backup/transport.sql是源端生成的控制文件,最后我们需要这个文件生成真正的控制文件(即目标端spfile或pfile的*.control_files值对应的文件)



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



12.保证linux目标库shutdown情况下,sqlplus执行/u02/backup/transport.sql

/u02/backup/

sqlplus / as sysdba

SQL>startup nomount

SQL>@transport.sql


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

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

注册时间:2015-02-02

  • 博文量
    348
  • 访问量
    1174929