oracle rman异机恢复数据库

    技术2022-07-11  97

    一、操作环境: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>

     

    Processed: 0.011, SQL: 12