RMAN学习8——控制文件恢复(nocatalog模式)

来源:互联网 发布:java实现在线客服功能 编辑:IT博客网 时间:2019/09/17 14:36

如果在nocatalog模式下,rman备份的一些信息是存储在控制文件当中。

如果丢失,不仅数据库打不开,rman的备份信息也丢失,这里需要恢复控制文件

1、做好备份,这里略过

2、关闭数据库,删除控制文件

SQL> host del D:\app\Administrator\oradata\orcl\control*

3、开始恢复

由于控制文件丢失,并且在nocatalog模式下,一些配置信息都变成了默认信息。

C:\Documents and Settings\Administrator>rman target /

恢复管理器: Release 11.1.0.6.0 - Production on 星期三 7月 18 16:45:20 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到目标数据库: ORCL (未装载)

RMAN> set dbid=1311720845《这里一定要记住这个dbid,如果忘了,百度一下吧》

正在执行命令: SET DBID

RMAN> show all;

使用目标数据库控制文件替代恢复目录
db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BZIP2'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
《这里的配置信息全部变成了默认信息》
RMAN> restore controlfile from 'D:\app\Administrator\flash_recovery_area\ORCL\AUTOBACKUP\2012_07_18\O1_MF_S_788972587_80DQXDKL_.BKP';
《这里需要制定控制文件备份路径,因为基础配置信息已经丢失》
启动 restore 于 18-7月 -12
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=D:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=D:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
输出文件名=D:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 18-7月 -12

RMAN> alter database mount;
《挂在数据库,加载控制文件,因为控制文件里面包含了数据文件、redolog等文件信息》

数据库已装载
释放的通道: ORA_DISK_1

RMAN> recover database;
《恢复数据库,应用备份的控制文件之后生成的redolog》
启动 recover 于 18-7月 -12
启动 implicit crosscheck backup 于 18-7月 -12
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=154 设备类型=DISK
已交叉检验的 4 对象
完成 implicit crosscheck backup 于 18-7月 -12

启动 implicit crosscheck copy 于 18-7月 -12
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 18-7月 -12

搜索恢复区中的所有文件
正在编制文件目录...
目录编制完毕

已列入目录的文件的列表
=======================
文件名: D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2012_07_18\O1_MF_S_788972587_80DQXDKL_.BKP


使用通道 ORA_DISK_1
正在开始介质的恢复

线程 1 序列 19 的归档日志已作为文件 D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG
 存在于磁盘上
归档日志文件名=D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 线程=1 序列=19
介质恢复完成, 用时: 00:00:01
完成 recover 于 18-7月 -12

RMAN> alter database open resetlogs;

数据库已打开
RMAN> show all;
db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BZIP2'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\APP\ADMINISTRATOR\PRODUCT\11.1.0\DB_1\DATABASE\SNCFORCL.ORA'; # default
《一些配置信息又回来了》

RMAN>

SQL> select count(1) from orders;

  COUNT(1)
----------
         1
SQL>

查看一下有数据了。

如果没有备份,需要对数据库的结构非常了解,通过脚本的方式重建控制文件,这个伤脑细胞的工作,我没有去试验。