前两天在技术交流群里看到有人在迁移oracle时遇到问题(从linux环境迁移至windows),在此试验一下整个过程。 1.备份整库 在linux环境下通过rman备份整库,并将备份集拷贝至windows环境下,此步骤省略。其中有两个备份集:o1_mf_s_1042364904_hfoxqb24_.bkp ----参数文件和控制文件441724361_0cv22ehf_1_1 ----数据集 2.windows环境配置 (1)首先配置windows环境,这里需要先安装数据库软件和配置监听,不需要建库。(2)手动添加数据库实例,本次实验实例名为dbmon:C:\Users\zace>oradim -NEW -SID dbmon -startmode auto(3)手动配置一个pfile,路径:C:\app\zace\product\11.2.0\dbhome_2\database\initdbmon.ora,内容如下:db_name=dbmondb_unique_name=dbmon(4)启动数据库至nomount状态;(5)restore spfile:RMAN> restore spfile from 'C:\o1_mf_s_1042364904_hfoxqb24_.bkp'; (6)根据spfile重建pfile:SQL> create pfile from spfile;编辑pfile,将里面的路径修改为windows环境下的路径,修改完大致如下:*.audit_file_dest='C:\app\zace\admin\dbmon\adump'*.compatible='11.2.0.4.0'*.control_files='C:\app\zace\oradata\dbmon\control01.ora','C:\app\zace\flash_recovery_area\dbmon\control02.ora'*.db_block_size=8192*.db_domain=''*.db_name='dbmon'*.db_recovery_file_dest='C:\app\zace\flash_recovery_area'*.db_recovery_file_dest_size=10737418240*.diagnostic_dest='C:\app\zace'*.dispatchers='(PROTOCOL=TCP) (SERVICE=dbmonXDB)'*.open_cursors=300*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.sec_case_sensitive_logon=FALSE*.undo_tablespace='UNDOTBS1'(7)再根据pfile来重建spfile:SQL>shutdown immediate;SQL>create spfile from pfile;(8)restore controlfile:将数据库启动至nomount状态:SQL> startup nomount;RMAN target /RMAN> restore controlfile from ' C:\ o1_mf_s_1042364904_hfoxqb24_.bkp ';(9)将数据库启动至mount状态,然后执行:run{set newname for datafile '/data/u01/app/oracle/oradata/dbmon/tps_audit01.dbf' to 'C:\app\zace\oradata\dbmon\tps_audit01.dbf';set newname for datafile '/data/u01/app/oracle/oradata/dbmon/newmon01.dbf' to 'C:\app\zace\oradata\dbmon\newmon01.dbf';set newname for datafile '/data/u01/app/oracle/oradata/dbmon/dbmon01.dbf' to 'C:\app\zace\oradata\dbmon\dbmon01.dbf';set newname for datafile '/data/u01/app/oracle/oradata/dbmon/undotbs01.dbf' to 'C:\app\zace\oradata\dbmon\undotbs01.dbf';set newname for datafile '/data/u01/app/oracle/oradata/dbmon/tools01.dbf' to 'C:\app\zace\oradata\dbmon\tools01.dbf';set newname for datafile '/data/u01/app/oracle/oradata/dbmon/users01.dbf' to 'C:\app\zace\oradata\dbmon\users01.dbf';set newname for tempfile '/data/u01/app/oracle/oradata/dbmon/temp01.dbf' to 'C:\app\zace\oradata\dbmon\temp01.dbf';set newname for tempfile '/data/u01/app/oracle/oradata/dbmon/dbmon_temp01.dbf' to 'C:\app\zace\oradata\dbmon\dbmon_temp01.dbf';set newname for tempfile '/data/u01/app/oracle/oradata/dbmon/dbmon_temp02.dbf' to 'C:\app\zace\oradata\dbmon\dbmon_temp02.dbf';restore database;} 需要注意的是,此地方有报错,信息如下: 通道 ORA_DISK_1: 正在读取备份片段 C:\441724361_0CV22EHF_1_1 通道 ORA_DISK_1: ORA-19870: 还原备份片段 C:\441724361_0CV22EHF_1_1 时出错 ORA-19504: 无法创建文件"C:\DATA\U01\APP\ORACLE\ORADATA\DBMON\SYSAUX01.DBF" ORA-27040: 文件创建错误, 无法创建文件 OSD-04002: 无法打开文件 O/S-Error: (OS 3) 系统找不到指定的路径。 故障转移到上一个备份 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: restore 命令 (在 06/06/2020 13:29:56 上) 失败 RMAN-06026: 有些目标没有找到 - 终止还原 RMAN-06023: 没有找到数据文件4的副本来还原 RMAN-06023: 没有找到数据文件2的副本来还原 RMAN-06023: 没有找到数据文件1的副本来还原 看着报错信息有点奇怪,明明我指定的路径是‘ C:\app\zace\oradata\dbmon\’,这里却变成了‘C:\DATA\U01\APP\ORACLE\ORADATA\DBMON\’,仔细查找官网和网友的博客之后,发现了问题,此处只能用如下的方式才能成功:run{set newname for datafile 1 to 'C:\app\zace\oradata\dbmon\system01.dbf';set newname for datafile 2 to 'C:\app\zace\oradata\dbmon\sysaux01.dbf';set newname for datafile 3 to 'C:\app\zace\oradata\dbmon\undotbs01.dbf';set newname for datafile 4 to 'C:\app\zace\oradata\dbmon\users01.dbf';set newname for datafile 5 to 'C:\app\zace\oradata\dbmon\dbmon01.dbf';set newname for datafile 6 to 'C:\app\zace\oradata\dbmon\tools01.dbf';set newname for datafile 7 to 'C:\app\zace\oradata\dbmon\newmon01.dbf';set newname for datafile 8 to 'C:\app\zace\oradata\dbmon\tps_audit01.dbf';set newname for tempfile 1 to 'C:\app\zace\oradata\dbmon\temp01.dbf';set newname for tempfile 2 to 'C:\app\zace\oradata\dbmon\dbmon_temp01.dbf';set newname for tempfile 3 to 'C:\app\zace\oradata\dbmon\dbmon_temp02.dbf';restore database;}执行结果如下:通道 ORA_DISK_1: 正在读取备份片段 C:\441724361_0CV22EHF_1_1通道 ORA_DISK_1: 段句柄 = C:\441724361_0CV22EHF_1_1 标记 = TAG20200606T094935通道 ORA_DISK_1: 已还原备份片段 1通道 ORA_DISK_1: 还原完成, 用时: 00:00:45完成 restore 于 06-6月 -20 自此,介质的restore过程完成。(10)执行switch操作(修改一下控制文件的记录信息) RMAN> switch database to copy; 使用目标数据库控制文件替代恢复目录 数据文件 1 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\SYSTEM01.DBF" 数据文件 2 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\SYSAUX01.DBF" 数据文件 3 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\UNDOTBS01.DBF" 数据文件 4 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\USERS01.DBF" 数据文件 5 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\DBMON01.DBF" 数据文件 6 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\TOOLS01.DBF" 数据文件 7 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\NEWMON01.DBF" 数据文件 8 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\TPS_AUDIT01.DBF" (11)修改redo文件:经过尝试,redo日志最终通过重建控制文件解决: CREATE CONTROLFILE reuse SET DATABASE dbmon LOGFILE GROUP 1 ('C:\app\zace\oradata\dbmon\redo01.log') size 200M , GROUP 2 ('C:\app\zace\oradata\dbmon\redo02.log') size 200M, GROUP 3 ('C:\app\zace\oradata\dbmon\redo03.log') size 200M RESETLOGS DATAFILE 'C:\app\zace\oradata\dbmon\system01.dbf', 'C:\app\zace\oradata\dbmon\sysaux01.dbf' , 'C:\app\zace\oradata\dbmon\undotbs01.dbf' , 'C:\app\zace\oradata\dbmon\users01.dbf' , 'C:\app\zace\oradata\dbmon\dbmon01.dbf' , 'C:\app\zace\oradata\dbmon\tools01.dbf', 'C:\app\zace\oradata\dbmon\newmon01.dbf', 'C:\app\zace\oradata\dbmon\tps_audit01.dbf' MAXLOGFILES 50 MAXLOGMEMBERS 3 MAXLOGHISTORY 400 MAXDATAFILES 200 MAXINSTANCES 6 NOARCHIVELOG; 创建完成后,open数据库:SQL> alter database open resetlogs;(12)重建temp文件:create temporary tablespace TEMP2TEMPFILE 'C:\app\zace\oradata\dbmon\temp02.dbf'SIZE 500MAUTOEXTEND ONNEXT 1M MAXSIZE 32000MEXTENT MANAGEMENT LOCAL; 修改默认temp表空间: alter database default temporary tablespace temp2; alter user DBMON temporary tablespace temp2; 自此,数据库恢复完成。
oracle通过rman从linux迁移至windows
来源:这里教程网
时间:2026-03-03 15:49:16
作者:
编辑推荐:
- oracle通过rman从linux迁移至windows03-03
- 【加密技术】Oracle11g 加密技术03-03
- 在寻线仪中,为什么福禄克品牌是首选03-03
- 【DATAPUMP】Expdp 备份到ASM之 ORA-3907003-03
- 静默安装oralce软件03-03
- 项目管理基本流程介绍,让你轻松管理项目03-03
- Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名03-03
- 【RMAN】RMAN备份至ASM03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 【加密技术】Oracle11g 加密技术
【加密技术】Oracle11g 加密技术
26-03-03 - 在寻线仪中,为什么福禄克品牌是首选
在寻线仪中,为什么福禄克品牌是首选
26-03-03 - 项目管理基本流程介绍,让你轻松管理项目
项目管理基本流程介绍,让你轻松管理项目
26-03-03 - pl/sql developer的一个小问题
pl/sql developer的一个小问题
26-03-03 - oracle 12c 静默安装以及使用问题小结
oracle 12c 静默安装以及使用问题小结
26-03-03 - 如何一次性操作几百个新浪博客?怎么同时登录新浪号?
如何一次性操作几百个新浪博客?怎么同时登录新浪号?
26-03-03 - 一台电脑怎么管理多个新浪博客?便捷方法告诉你!
一台电脑怎么管理多个新浪博客?便捷方法告诉你!
26-03-03 - 用的人比较多的自媒体分发软件,这款最安全!
用的人比较多的自媒体分发软件,这款最安全!
26-03-03 - 木鱼小铺:商家如何玩转社区团购小程序
木鱼小铺:商家如何玩转社区团购小程序
26-03-03 - Oracle 没有索引导致的DPR
Oracle 没有索引导致的DPR
26-03-03
