一、操作环境:windows server 2008 r2 oracle 11g 数据库安装路径E:\app\Administrator、实例名orcl
二、备份情况:rman每周日全量0级别备份,每周一至周六1、2级备份,备份包含控制文件、归档日志
三、尝试异机恢复数据库
1、在新机器上安装数据库,保持按照路径和版本与原数据库一致,不安装实例
2、安装完毕后手动新建必须的目录,其他目录可以后期再建
E:\app\Administrator\oradata\orcl
E:\app\Administrator\recovery_area\orcl
3、设置环境变量
set ORACLE_HOME=E:\app\Administrator\product\11.2.0\dbhome_1
set ORACLE_SID=orcl
4、创建实例
oradim -new -sid orcl
5、连接到rman管理器
rman target /
6、启动dummy实例恢复spfile
RMAN> startup nomount
RMAN> restore spfile from 'E:\rman\config\2020_07_02\O1_MF_S_1044666041_HHSJ9SV4_.BKP';
7、关闭dummy实例重新用恢复后的spfile启动
RMAN> shutdown immediate;
RMAN> startup force nomount;
8、恢复控制文件
RMAN> restore controlfile from 'E:\rman\config\2020_07_02\O1_MF_S_1044666041_HHSJ9SV4_.BKP';
9、mount数据库
RMAN> alter database mount;
10、编制rman备份文件目录和归档日志,如果要完全恢复到最新,可以事先拷贝rman备份时间点后的所有归档日志和在线日志redo*.log(select * from v$logfile查询路径)到相应目录下,不然只能恢复到rman备份的时间点
RMAN> catalog start with 'E:\rman\data\this_week';
RMAN> catalog start with 'E:\app\Administrator\recovery_area\orcl\ARCHIVELOG\2020_07_02';
11、还原恢复数据库
RMAN> restore database;
RMAN> recover database;
12、打开数据库,如果非完全恢复必须加resetlogs参数,不然会提示报错
RMAN> alter database open;
RMAN> alter database open resetlogs;
13、配置监听程序,重启监听,完成恢复
附:执行过程参考
C:\Users\Administrator>oradim -new -sid orcl
实例已创建。
C:\Users\Administrator>rman target /
恢复管理器: Release 11.2.0.4.0 - Production on 星期三 7月 1 09:02:10 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库 (未启动)
RMAN> startup nomount
启动失败: ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITORCL.ORA'
在没有参数文件的情况下启动 Oracle 实例以检索 spfile
Oracle 实例已启动
系统全局区域总计 1068937216 字节
Fixed Size 2288080 字节
Variable Size 285214256 字节
Database Buffers 775946240 字节
Redo Buffers 5488640 字节
RMAN> restore spfile from 'E:\rman\config\2020_07_02\O1_MF_S_1044666041_HHSJ9SV4_.BKP';
启动 restore 于 01-7月 -20
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=429 设备类型=DISK
通道 ORA_DISK_1: 正在从 AUTOBACKUP E:\rman\config\2020_07_02\O1_MF_S_1044666041_HHSJ9SV4_.BKP 还原 spfile
通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成
完成 restore 于 01-7月 -20
RMAN> shutdown immediate;
Oracle 实例已关闭
RMAN> startup force nomount;
Oracle 实例已启动
系统全局区域总计 24585801728 字节
Fixed Size 2292568 字节
Variable Size 6308234408 字节
Database Buffers 18253611008 字节
Redo Buffers 21663744 字节
RMAN> restore controlfile from 'E:\rman\config\2020_07_02\O1_MF_S_1044666041_HHSJ9SV4_.BKP';
启动 restore 于 01-7月 -20
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=63 设备类型=DISK
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\CONTROL02.CTL
完成 restore 于 01-7月 -20
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> catalog start with 'E:\rman\data\this_week';
启动 implicit crosscheck backup 于 01-7月 -20
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=63 设备类型=DISK
已交叉检验的 14 对象
完成 implicit crosscheck backup 于 01-7月 -20
启动 implicit crosscheck copy 于 01-7月 -20
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 01-7月 -20
搜索恢复区中的所有文件
正在编制文件目录...
没有为文件编制目录
搜索与样式 E:\rman\data\this_week 匹配的所有文件
数据库未知文件的列表
=====================================
文件名: E:\RMAN\DATA\this_week\INC0_03V3VB1T_20200629
文件名: E:\RMAN\DATA\this_week\INC0_04V3VB3A_20200629
文件名: E:\RMAN\DATA\this_week\INC1__0AV4618I_20200701
文件名: E:\RMAN\DATA\this_week\INC1__0BV4618L_20200701
文件名: E:\RMAN\DATA\this_week\INC1__0CV4619O_20200701
文件名: E:\RMAN\DATA\this_week\INC2__06V40OGH_20200630
文件名: E:\RMAN\DATA\this_week\INC2__07V40OGL_20200630
文件名: E:\RMAN\DATA\this_week\INC2__08V40OHO_20200630
文件名: E:\RMAN\DATA\this_week\INC2__0EV48LKH_20200702
文件名: E:\RMAN\DATA\this_week\INC2__0FV48LKL_20200702
文件名: E:\RMAN\DATA\this_week\INC2__0GV48LLO_20200702
是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: E:\RMAN\DATA\this_week\INC0_03V3VB1T_20200629
文件名: E:\RMAN\DATA\this_week\INC0_04V3VB3A_20200629
文件名: E:\RMAN\DATA\this_week\INC1__0AV4618I_20200701
文件名: E:\RMAN\DATA\this_week\INC1__0BV4618L_20200701
文件名: E:\RMAN\DATA\this_week\INC1__0CV4619O_20200701
文件名: E:\RMAN\DATA\this_week\INC2__06V40OGH_20200630
文件名: E:\RMAN\DATA\this_week\INC2__07V40OGL_20200630
文件名: E:\RMAN\DATA\this_week\INC2__08V40OHO_20200630
文件名: E:\RMAN\DATA\this_week\INC2__0EV48LKH_20200702
文件名: E:\RMAN\DATA\this_week\INC2__0FV48LKL_20200702
文件名: E:\RMAN\DATA\this_week\INC2__0GV48LLO_20200702
RMAN> catalog start with 'E:\app\Administrator\recovery_area\orcl\ARCHIVELOG\2020_07_02';
搜索与样式 E:\app\Administrator\recovery_area\orcl\ARCHIVELOG\2020_07_02 匹配的
所有文件
数据库未知文件的列表
=====================================
文件名: E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_02\O1_MF_1_939_HHT919Z1_.ARC
文件名: E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_02\O1_MF_1_940_HHT91BDH_.ARC
是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_02\O1_MF_1_939_HHT919Z1_.ARC
文件名: E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_02\O1_MF_1_940_HHT91BDH_.ARC
RMAN> restore database;
启动 restore 于 01-7月 -20
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 E:\RMAN\DATA\THIS_WEEK\INC0_03V3VB1T_20200629
通道 ORA_DISK_1: 段句柄 = E:\RMAN\DATA\THIS_WEEK\INC0_03V3VB1T_20200629 标记 = SUNDAY_INC0
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:25
完成 restore 于 01-7月 -20
RMAN> recover database;
启动 recover 于 01-7月 -20
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始还原增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
数据文件 00001 的还原目标: E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
数据文件 00002 的还原目标: E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
数据文件 00003 的还原目标: E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
数据文件 00004 的还原目标: E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 E:\RMAN\DATA\THIS_WEEK\INC1__0BV4618L_20200701
通道 ORA_DISK_1: 段句柄 = E:\RMAN\DATA\THIS_WEEK\INC1__0BV4618L_20200701 标记 =WEDNESDAY_INC1
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:07
通道 ORA_DISK_1: 正在开始还原增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
数据文件 00001 的还原目标: E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
数据文件 00002 的还原目标: E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
数据文件 00003 的还原目标: E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
数据文件 00004 的还原目标: E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 E:\RMAN\DATA\THIS_WEEK\INC2__0FV48LKL_20200702
通道 ORA_DISK_1: 段句柄 = E:\RMAN\DATA\THIS_WEEK\INC2__0FV48LKL_20200702 标记 =THURSDAY_INC2
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:04
正在开始介质的恢复
线程 1 序列 939 的归档日志已作为文件 E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_02\O1_MF_1_939_HHT919Z1_.ARC 存在于磁盘上
线程 1 序列 940 的归档日志已作为文件 E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_02\O1_MF_1_940_HHT91BDH_.ARC 存在于磁盘上
线程 1 序列 941 的归档日志已作为文件 E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 存在于磁盘上
通道 ORA_DISK_1: 正在开始将归档日志还原到默认目标
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=938
通道 ORA_DISK_1: 正在读取备份片段 E:\RMAN\DATA\THIS_WEEK\INC2__0GV48LLO_20200702
通道 ORA_DISK_1: 段句柄 = E:\RMAN\DATA\THIS_WEEK\INC2__0GV48LLO_20200702 标记 =THURSDAY_INC2
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
归档日志文件名=E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_01\O1_MF_1_938_HHQS7M00_.ARC 线程=1 序列=938
通道 default: 正在删除归档日志
归档日志文件名=E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_01\O1_MF_1_938_HHQS7M00_.ARC RECID=40 STAMP=1044609651
归档日志文件名=E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_02\O1_MF_1_939_HHT919Z1_.ARC 线程=1 序列=939
归档日志文件名=E:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_07_02\O1_MF_1_940_HHT91BDH_.ARC 线程=1 序列=940
归档日志文件名=E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 线程=1 序列=941
介质恢复完成, 用时: 00:00:03
完成 recover 于 01-7月 -20
RMAN> alter database open;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: alter db 命令 (在 07/01/2020 09:24:36 上) 失败
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
RMAN> alter database open resetlogs;
数据库已打开
RMAN>