先备份数据库的控制文件,然后干掉系统中的控制文件。目的是为了验证在在不完全恢复中:如果是在控制文件丢失的情况下。那么系统的SCN号会小于数据文件头的SCN号:即system SCN
连接到目标数据库: ORCL (DBID=1305768094)
RMAN> show all;
使用目标数据库控制文件替代恢复目录
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 ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\S
NCFORCL.ORA'; # default
RMAN> configure controlfile autobackup on;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
RMAN> backup database
2> format 'D:\oracle\%U%T';
启动 backup 于 21-3月 -12
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=132 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 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=00008 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SUNXIN.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS02.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
输入数据文件 fno=00007 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST.DBF
通道 ORA_DISK_1: 正在启动段 1 于 21-3月 -12
通道 ORA_DISK_1: 已完成段 1 于 21-3月 -12
段句柄=D:\ORACLE\03N6EBI1_1_120120321 标记=TAG20120321T135305 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:56
完成 backup 于 21-3月 -12
启动 Control File and SPFILE Autobackup 于 21-3月 -12
段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2012_03_2
1\O1_MF_S_778514041_7PLV7TGN_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 21-3月 -12
RMAN> exit
恢复管理器完成。
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 21 13:54:29 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> shutdown immeidate
SP2-0717: 非法的 SHUTDOWN 选项
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 243272580 bytes
Database Buffers 360710144 bytes
Redo Buffers 7135232 bytes
ORA-00205: ?????????, ??????, ???????
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期三 3月 21 13:56:12 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: orcl (未装载)
使用目标数据库控制文件替代恢复目录
RMAN> restore controlfile from 'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORC
L\AUTOBACKUP\2012_03_21\O1_MF_S_778514041_7PLV7TGN_.BKP'
2> ;
启动 restore 于 21-3月 -12
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:04
输出文件名=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 于 21-3月 -12
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> exit
恢复管理器完成。
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 21 13:59:05 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
1003105
SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
1004044
1004044
1004044
1004044
1004044
1004044
1004044
1004044
已选择8行。
SQL> select first_change# from v$log;
FIRST_CHANGE#
-------------
973730
941075
1001443
SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成
SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_
21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中
指定日志: {=suggested | filename | AUTO | CANCEL}
ORA-00308: 无法打开归档日志
'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1
_21_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_
21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中
指定日志: {=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\orcl\redo03.log
ORA-00328: 归档日志在更改 973729 结束, 需要稍后的更改 1003646
ORA-00334: 归档日志: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'
SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_
21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中
指定日志: {=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\orcl\redo03.log
ORA-00328: 归档日志在更改 973729 结束, 需要稍后的更改 1003646
ORA-00334: 归档日志: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_
21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中
指定日志: {=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\orcl\redo01.log
ORA-00328: 归档日志在更改 1001442 结束, 需要稍后的更改 1003646
ORA-00334: 归档日志: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'
SQL> recover database using backup controlfile;
ORA-00279: 更改 1003646 (在 03/21/2012 13:47:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_03_21\O1_MF_1_
21_%U_.ARC
ORA-00280: 更改 1003646 (用于线程 1) 在序列 #21 中
指定日志: {=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\orcl\redo02.log
已应用的日志。
完成介质恢复。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open resetlogs;
数据库已更改。
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
1004046
SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
1004046
1004046
1004046
1004046
1004046
1004046
1004046
1004046
已选择8行。
SQL> select first_change# from v$log;
FIRST_CHANGE#
-------------
0
1004045
0
SQL> alter system switch logfile;
系统已更改。
SQL> /
系统已更改。
SQL> select first_change# from v$log;
FIRST_CHANGE#
-------------
1005199
1004045
1005201
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- --------------
1 1 2 52428800 1 YES ACTIVE
1005199 21-3月 -12
2 1 1 52428800 1 YES ACTIVE
1004045 21-3月 -12
3 1 3 52428800 1 NO CURRENT
1005201 21-3月 -12
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21416913/viewspace-719179/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21416913/viewspace-719179/