控制文件全部丢失的恢复测试
1.rman备份数据库,0级增量备份,控制文件配置为自动备份。
D:\>rman target sys/system@orcl catalog rman/rman@rmancat
恢复管理器: Release 10.2.0.3.0 - Production on 星期二 9月 20 10:42:43 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1286153759)
连接到恢复目录数据库
RMAN> run{
2> allocate channel ch1 device type disk;
3> backup tag 'incr_0' incremental level 0 database;
4> sql 'alter system archive log current';
5> backup archivelog all delete input;
6> release channel ch1;
7> }
分配的通道: ch1
通道 ch1: sid=159 devtype=DISK
启动 backup 于 20-9月 -11
通道 ch1: 启动增量级别 0 数据文件备份集
通道 ch1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ch1: 正在启动段 1 于 20-9月 -11
通道 ch1: 已完成段 1 于 20-9月 -11
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_09_20\O1
_MF_NNND0_INCR_0_77HZP9RH_.BKP 标记=INCR_0 注释=NONE
通道 ch1: 备份集已完成, 经过时间:00:00:35
完成 backup 于 20-9月 -11
启动 Control File and SPFILE Autobackup 于 20-9月 -11
段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2011_09_2
0\O1_MF_S_762346093_77HZQG3H_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 20-9月 -11
sql 语句: alter system archive log current
启动 backup 于 20-9月 -11
当前日志已存档
通道 ch1: 正在启动存档日志备份集
通道 ch1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =3 记录 ID=20 时间戳=762346101
输入存档日志线程 =1 序列 =4 记录 ID=21 时间戳=762346102
通道 ch1: 正在启动段 1 于 20-9月 -11
通道 ch1: 已完成段 1 于 20-9月 -11
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_09_20\O1
_MF_ANNNN_TAG20110920T104823_77HZQR7C_.BKP 标记=TAG20110920T104823 注释=NONE
通道 ch1: 备份集已完成, 经过时间:00:00:02
通道 ch1: 正在删除存档日志
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH\ORCL\ARC00003_0762342250.001 记录
ID=20 时间戳 =762346101
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH\ORCL\ARC00004_0762342250.001 记录
ID=21 时间戳 =762346102
完成 backup 于 20-9月 -11
启动 Control File and SPFILE Autobackup 于 20-9月 -11
段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2011_09_2
0\O1_MF_S_762346106_77HZQV20_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 20-9月 -11
释放的通道: ch1
RMAN>
2.向测试表中插入数据
SQL> insert into test1 values(34,5,90);
已创建 1 行。
SQL> commit;
提交完成。
3.关闭数据库,删除所有控制文件。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del d:\oracle\product\10.2.0\oradata\orcl\control*.ctl
4.启动数据库
SQL> startup;
ORACLE instance started.
Total System Global Area 205520896 bytes
Fixed Size 1289700 bytes
Variable Size 180355612 bytes
Database Buffers 16777216 bytes
Redo Buffers 7098368 bytes
ORA-00205: error in identifying control file, check alert log for more info
5.从备份中恢复控制文件
D:\>rman target sys/system@orcl catalog rman/rman@rmancat
恢复管理器: Release 10.2.0.3.0 - Production on 星期二 9月 20 11:00:59 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: orcl (未装载)
连接到恢复目录数据库
RMAN> restore controlfile;
启动 restore 于 20-9月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORC
L\AUTOBACKUP\2011_09_20\O1_MF_S_762346106_77HZQV20_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2011_09_20
\O1_MF_S_762346106_77HZQV20_.BKP 标记 = TAG20110920T104826
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:03
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 20-9月 -11
SQL> alter database mount;
Database altered.
6.尝试打开数据库,报错。
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
7.做介质恢复
RMAN> recover database;
启动 recover 于 20-9月 -11
释放的通道: ORA_DISK_1
启动 implicit crosscheck backup 于 20-9月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
已交叉检验的 6 对象
完成 implicit crosscheck backup 于 20-9月 -11
启动 implicit crosscheck copy 于 20-9月 -11
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 20-9月 -11
搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2011_09_20\
O1_MF_S_762346106_77HZQV20_.BKP
使用通道 ORA_DISK_1
RMAN-06900: 警告: 无法生成 V$RMAN_STATUS 或 V$RMAN_OUTPUT 行
RMAN-06901: 警告: 禁止更新 V$RMAN_STATUS 和 V$RMAN_OUTPUT 行
来自目标数据库的 ORACLE 错误:
正在开始介质的恢复
存档日志线程 1 序列 5 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LO
G 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG 线程 =1 序列 =5
介质恢复完成, 用时: 00:00:01
完成 recover 于 20-9月 -11
8.打开数据库
SQL> alter database open resetlogs;
Database altered.
SQL> conn hr/hr;
Connected.
SQL> select * from test1;
PK COL1 COL2
---------- ---------- ----------
1 1 1
2 1 1
3 1 1
4 21 1
5 22 102
34 5 90
6 rows selected.
可以看到之前插入的数据没有丢失,恢复成功。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/36590/viewspace-707935/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/36590/viewspace-707935/