******************************************
1.控制文件备份分类
******************************************
通常分为:
1)在线镜像备份
2)结构备份
3)历史备份
恢复时优先考虑镜像备份.
除了镜像备份外其它备份恢复主要按照下面的步骤:
步骤1:从备份中还原控制文件
步骤2:利用重做日志介质恢复数据库
步骤3:重设日志打开数据库
利用resetlogs命令打开数据库的原因是recover命令只能修复控制文件中的
数据库物理结构信息无法修改控制文件中的当前重做日志的序列号等信息,
当你recover命令完成后,控制文件中当前日志序列号还是备份时的序列号,
国语陈旧.
******************************************
2.recover database几种区别
******************************************
第一类:SQL>recover database;
该命令用来对所有数据文件进行恢复,并且只能使用保存
在文件系统上的归档日志和在线日志。使用该命令的前提
是控制文件不能是还原或重建得来的,即控制文件必须
是在线的或损坏镜像还原的.
第二类:SQL>recover database using backup controfile;
该命令用来对所有数据文件以及控制文件进行恢复,并且只能使用保存
在文件系统上的归档日志和在线日志。
第三类:RMAN>recover database;
该命令用来对所有数据文件以及控制文件进行恢复,并且可以使用
增量备份、备份中的和文件系统上的归档日志以及文件系统上的在线日志.
******************************************
3.利用在线镜像恢复
******************************************
/***
基本步骤:
1)startup nomount
2)查看日志了解控制文件损坏情况
3)利用系统命令拷贝或手动拷贝将损坏的控制文件替换
4)alter database mount
5)alter database open
*****/
一、控制文件损坏的恢复(一个文件)
损坏单个控制文件是比较容易恢复的,因为一般的数据库系统,控制文件都不是一个,
而且所有的控制文件都互为镜像,只要拷贝一个好的控制文件替换坏的控制文件就可以了。
--方法1:使用spfile多路复用
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      E:\APP\ADMINISTRATOR\ORADATA\O
                                                 RCL\CONTROL01.CTL, E:\APP\ADMI
                                                 NISTRATOR\FLASH_RECOVERY_AREA\
                                                 ORCL\CONTROL02.CTL
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
host del E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  599785472 bytes
Fixed Size                  1250380 bytes
Variable Size             171969460 bytes
Database Buffers          423624704 bytes
Redo Buffers                2940928 bytes
ORA-00205: ?????????, ??????, ???????
SQL> shutdown immediate;
ORA-01507: ??????
ORACLE 例程已经关闭。
SQL> host copy E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL
已复制         1 个文件。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  599785472 bytes
Fixed Size                  1250380 bytes
Variable Size             171969460 bytes
Database Buffers          423624704 bytes
Redo Buffers                2940928 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter control_files;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      E:\APP\ADMINISTRATOR\ORADATA\O
                                                 RCL\CONTROL01.CTL, E:\APP\ADMI
                                                 NISTRATOR\FLASH_RECOVERY_AREA\
                                                 ORCL\CONTROL02.CTL
--方法2: 通过初始化文件修改设置多路控制文件复制
1)直接修改服务器参数文件.
create pfile='e:\initorcl.ora' from spfile;
2_编辑修改e:\initorcl.ora文件.
修改control_files部分,将丢失的控制文件删除.如:
*.control_files='E:\app\Administrator\oradata\orcl\control01.ctl',
'E:\app\Administrator\flash_recovery_area\orcl\control02.ctl'
修改为:
*.control_files='E:\app\Administrator\oradata\orcl\control01.ctl'
3)启动
startup pfile='e:\initorcl.ora';
说明:
1、损失单个控制文件是比较简单的,因为数据库中所有的控制文件都是镜像的,只需要简
单的拷贝一个好的就可以了
2、建议镜像控制文件在不同的磁盘上
3、建议多做控制文件的备份,长期保留一份由alter database backup control file
to trace产生的控制文件的文本备份
******************************************
4.利用手动备份还原
******************************************
/***基本步骤:
1)startup nomount
2)restore controlfile from autobackup;
3)alter database mount
4)recover database命令恢复数据库
5)alter database open resetlogs
*****/
案例演示:
--(1).利用手动备份控制文件和参数文件
run {
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to 'E:\backup\controlfile\bak_%F';
allocate channel c1 device type disk format  'E:\backup\data\bak_%u';
allocate channel c2 device type disk format 'E:\backup\data\bak_%u';
backup tablespace users ;
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:\backup\bak_%F';
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:\backup\controlfile\bak_%F';
已成功存储新的 RMAN 配置参数
释放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: SID=202 设备类型=DISK
分配的通道: c2
通道 c2: SID=201 设备类型=DISK
启动 backup 于 2013-07-23 14:52:39
通道 c1: 正在启动全部数据文件备份集
通道 c1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00004 名称=F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 c1: 正在启动段 1 于 2013-07-23 14:52:41
通道 c1: 已完成段 1 于 2013-07-23 14:52:42
段句柄=E:\BACKUP\DATA\BAK_89OFFHPP 标记=TAG20130723T145241 注释=NONE
通道 c1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 2013-07-23 14:52:42
启动 Control File and SPFILE Autobackup 于 2013-07-23 14:52:42
段 handle=E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-08 comment=NONE
完成 Control File and SPFILE Autobackup 于 2013-07-23 14:52:45
释放的通道: c1
释放的通道: c2
RMAN> allocate channel for maintenance device type disk;
分配的通道: ORA_MAINT_DISK_6
通道 ORA_MAINT_DISK_6: SID=202 设备类型=DISK
--(2).模拟删除控制文件
SQL> show parameters control_files;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      F:\APP\ADMINISTRATOR\ORADATA\O
                                                 RCL\CONTROL01.CTL, F:\APP\ADMI
                                                 NISTRATOR\ORADATA\ORCL\CONTROL
                                                 02.CTL, F:\APP\ADMINISTRATOR\O
                                                 RADATA\ORCL\CONTROL03.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
--(3)启动数据库,查看错误日志
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2538741760 bytes
Fixed Size                  2257872 bytes
Variable Size            1627393072 bytes
Database Buffers          889192448 bytes
Redo Buffers               19898368 bytes
ORA-00205: ?????????, ??????, ???????
F:\app\Administrator\diag\rdbms\orcl\orcl\trace
Tue Jul 23 14:58:29 2013
ALTER DATABASE   MOUNT
ORA-00210: cannot open the specified control file
ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-00210: cannot open the specified control file
ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-00210: cannot open the specified control file
ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-205 signalled during: ALTER DATABASE   MOUNT...
Tue Jul 23 14:58:29 2013
Checker run found 3 new persistent data failures
---(4).利用手动备份恢复
C:\>rman target /
恢复管理器: Release 11.2.0.3.0 - Production on 星期二 7月 23 15:02:11 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
已连接到目标数据库: ORCL (未装载)
/****************************常见错误***************************************
--由于控制文件丢失,未装载数据库.所以不能查询备份情况
RMAN> list backup of controlfile;  
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: list 命令 (在 07/23/2013 15:03:06 上) 失败
ORA-01507: 未装载数据库
---备份为备份到快速恢复区,所以不能找到备份
RMAN> restore controlfile from autobackup;
启动 restore 于 2013-07-23 15:03:40
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
恢复区目标: F:\arch
用于搜索的数据库名 (或数据库的唯一名称): ORCL
通道 ORA_DISK_1: 在恢复区中没有找到 AUTOBACKUP
由于未设置 DBID 而未尝试使用格式 "%F" 搜索 AUTOBACKUP
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 07/23/2013 15:03:41 上) 失败
RMAN-06172: 没有找到 AUTOBACKUP, 或者指定的句柄不是有效副本或片段
**********************************************************************/
RMAN> restore controlfile from 'E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-08';
启动 restore 于 2013-07-23 15:06:07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:02
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 2013-07-23 15:06:09
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> recover database;
启动 recover 于 2013-07-23 15:11:35
启动 implicit crosscheck backup 于 2013-07-23 15:11:35
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
已交叉检验的 1 对象
完成 implicit crosscheck backup 于 2013-07-23 15:11:37
启动 implicit crosscheck copy 于 2013-07-23 15:11:37
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 2013-07-23 15:11:37
搜索恢复区中的所有文件
正在编制文件目录...
没有为文件编制目录
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 1055 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 存在于磁盘上
归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 线程=1 序列=1055
介质恢复完成, 用时: 00:00:02
完成 recover 于 2013-07-23 15:11:53
RMAN> alter database open resetlogs;
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     1
下一个存档日志序列   1
当前日志序列           1
******************************************
5.利用自动备份还原
******************************************
/***基本步骤:
1)startup nomount
2)restore controlfile from autobackup;
3)alter database mount
4)recover database命令恢复数据库
5)alter database open resetlogs
*****/
案例演示:
--(1).利用自动备份控制文件和参数文件
run {
configure controlfile autobackup on;
configure CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE  type disk clear;
allocate channel c1 device type disk format  'E:\backup\data\bak_%u';
allocate channel c2 device type disk format 'E:\backup\data\bak_%u';
backup tablespace users ;
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
RMAN 配置参数已成功重置为默认值
释放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: SID=129 设备类型=DISK
分配的通道: c2
通道 c2: SID=198 设备类型=DISK
启动 backup 于 2013-07-23 15:54:44
通道 c1: 正在启动全部数据文件备份集
通道 c1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00004 名称=F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 c1: 正在启动段 1 于 2013-07-23 15:54:44
通道 c1: 已完成段 1 于 2013-07-23 15:54:45
段句柄=E:\BACKUP\DATA\BAK_8DOFFLE4 标记=TAG20130723T155444 注释=NONE
通道 c1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 2013-07-23 15:54:45
启动 Control File and SPFILE Autobackup 于 2013-07-23 15:54:45  
段 handle=F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP   --备份位置
comment=NONE  
完成 Control File and SPFILE Autobackup 于 2013-07-23 15:54:49
释放的通道: c1
释放的通道: c2
RMAN> allocate channel for maintenance device type disk;
分配的通道: ORA_MAINT_DISK_1
通道 ORA_MAINT_DISK_1: SID=129 设备类型=DISK
RMAN> SHOW CONTROLFILE AUTOBACKUP FORMAT;  --查看autobackup位置
db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
--(2).模拟删除控制文件
shutdown  immediate;
SQL> show parameters control_files;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      F:\APP\ADMINISTRATOR\ORADATA\O
                                                 RCL\CONTROL01.CTL, F:\APP\ADMI
                                                 NISTRATOR\ORADATA\ORCL\CONTROL
                                                 02.CTL, F:\APP\ADMINISTRATOR\O
                                                 RADATA\ORCL\CONTROL03.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
--(3)启动数据库,查看错误日志
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2538741760 bytes
Fixed Size                  2257872 bytes
Variable Size            1627393072 bytes
Database Buffers          889192448 bytes
Redo Buffers               19898368 bytes
ORA-00205: ?????????, ??????, ???????
F:\app\Administrator\diag\rdbms\orcl\orcl\trace
Tue Jul 23 14:58:29 2013
ALTER DATABASE   MOUNT
ORA-00210: cannot open the specified control file
ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-00210: cannot open the specified control file
ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-00210: cannot open the specified control file
ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-205 signalled during: ALTER DATABASE   MOUNT...
Tue Jul 23 14:58:29 2013
Checker run found 3 new persistent data failures
---(4).利用自动备份恢复
C:\>rman target /
恢复管理器: Release 11.2.0.3.0 - Production on 星期二 7月 23 15:02:11 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
已连接到目标数据库: ORCL (未装载)
/****************************常见错误***************************************
--由于控制文件丢失,未装载数据库.所以不能查询备份情况
RMAN> list backup of controlfile;  
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: list 命令 (在 07/23/2013 15:03:06 上) 失败
ORA-01507: 未装载数据库
**********************************************************************/
RMAN> restore controlfile from autobackup;
启动 restore 于 2013-07-23 16:23:46
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
恢复区目标: F:\arch
用于搜索的数据库名 (或数据库的唯一名称): ORCL
通道 ORA_DISK_1: 在恢复区中找到 AUTOBACKUP F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP
由于未设置 DBID 而未尝试使用格式 "%F" 搜索 AUTOBACKUP
通道 ORA_DISK_1: 正在从 AUTOBACKUP F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP 还原控制文件
通道 ORA_DISK_1: 从 AUTOBACKUP 还原控制文件已完成
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 2013-07-23 16:23:47
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> recover database;
启动 recover 于 2013-07-23 16:25:39
启动 implicit crosscheck backup 于 2013-07-23 16:25:39
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
已交叉检验的 1 对象
完成 implicit crosscheck backup 于 2013-07-23 16:25:40
启动 implicit crosscheck copy 于 2013-07-23 16:25:40
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 2013-07-23 16:25:41
搜索恢复区中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 1 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 存在于磁盘上
线程 1 序列 2 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 存在于磁盘上
归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 线程=1 序列=1
归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 线程=1 序列=2
介质恢复完成, 用时: 00:00:03
完成 recover 于 2013-07-23 16:25:58
RMAN> alter database open resetlogs;
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     1
下一个存档日志序列   1
当前日志序列           1
******************************************
6.利用历史备份还原
******************************************
-----6.1自动修复不一致
/********基本步骤:
1)startup nomount
2)restore controlfile from '';
3)alter database mount
4)recover database命令恢复数据库
5)alter database open resetlogs
*********/
案例演示:
--(1).利用手动备份控制文件和参数文件
run {
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to 'E:\backup\controlfile\bak_%F';
allocate channel c1 device type disk format  'E:\backup\data\bak_%u';
allocate channel c2 device type disk format 'E:\backup\data\bak_%u';
backup tablespace users ;
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
configure controlfile autobackup off;
--(2).新建一个表空间
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF
create tablespace test
datafile 'F:\app\administrator\oradata\orcl\test.dbf'
size 100m
autoextend on
next 10m maxsize unlimited
extent management local autoallocate
segment   space management auto;
SQL>  select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF   --已经存在test
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF
--(3).模拟删除控制文件
SQL> show parameters control_files;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      F:\APP\ADMINISTRATOR\ORADATA\O
                                                 RCL\CONTROL01.CTL, F:\APP\ADMI
                                                 NISTRATOR\ORADATA\ORCL\CONTROL
                                                 02.CTL, F:\APP\ADMINISTRATOR\O
                                                 RADATA\ORCL\CONTROL03.CTL
shutdown immediate;
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
--(3)启动数据库,查看错误日志
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2538741760 bytes
Fixed Size                  2257872 bytes
Variable Size            1627393072 bytes
Database Buffers          889192448 bytes
Redo Buffers               19898368 bytes
ORA-00205: ?????????, ??????, ???????
---(4).利用手动备份恢复
C:\>rman target /
恢复管理器: Release 11.2.0.3.0 - Production on 星期二 7月 23 17:11:51 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
已连接到目标数据库: ORCL (未装载)
/****************************常见错误***************************************
--由于控制文件丢失,未装载数据库.所以不能查询备份情况
RMAN> list backup of controlfile;  
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: list 命令 (在 07/23/2013 15:03:06 上) 失败
ORA-01507: 未装载数据库
---备份为备份到快速恢复区,所以不能找到备份
RMAN> restore controlfile from autobackup;
启动 restore 于 2013-07-23 15:03:40
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
恢复区目标: F:\arch
用于搜索的数据库名 (或数据库的唯一名称): ORCL
通道 ORA_DISK_1: 在恢复区中没有找到 AUTOBACKUP
由于未设置 DBID 而未尝试使用格式 "%F" 搜索 AUTOBACKUP
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 07/23/2013 15:03:41 上) 失败
RMAN-06172: 没有找到 AUTOBACKUP, 或者指定的句柄不是有效副本或片段
**********************************************************************/
RMAN> restore controlfile from 'E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-0C';
启动 restore 于 2013-07-23 17:13:57
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 2013-07-23 17:13:59
RMAN> alter database mount;
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF
---还原的控制文件中没有新建的表空间TEST.
RMAN> recover database;
启动 recover 于 2013-07-23 17:16:22
启动 implicit crosscheck backup 于 2013-07-23 17:16:22
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
已交叉检验的 1 对象
完成 implicit crosscheck backup 于 2013-07-23 17:16:24
启动 implicit crosscheck copy 于 2013-07-23 17:16:24
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 2013-07-23 17:16:24
搜索恢复区中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 1 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 存在于磁盘上
归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 线程=1 序列=1
创建数据文件, 文件号 = 5 名称 = F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF   --新建了文件TEST
归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 线程=1 序列=1
介质恢复完成, 用时: 00:00:03
完成 recover 于 2013-07-23 17:16:36
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF   --TEST出现了
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF
RMAN> alter database open resetlogs;
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     1
下一个存档日志序列   1
当前日志序列           1
SQL> alter system switch logfile;
系统已更改。
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     1
下一个存档日志序列   2
当前日志序列           2
-----6.2手动修复不一致
/********基本步骤:
1)startup nomount
2)restore controlfile from '';
3)alter database mount
4)recover database命令恢复数据库
5)alter database open resetlogs
*********/
案例演示:
--(1).利用手动备份控制文件和参数文件
run {
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to 'E:\backup\controlfile\bak_%F';
allocate channel c1 device type disk format  'E:\backup\data\bak_%u';
allocate channel c2 device type disk format 'E:\backup\data\bak_%u';
backup tablespace users ;
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:\backup\controlfile\bak_%F';
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:\backup\controlfile\bak_%F';
已成功存储新的 RMAN 配置参数
释放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: SID=129 设备类型=DISK
分配的通道: c2
通道 c2: SID=197 设备类型=DISK
启动 backup 于 2013-07-23 17:24:49
通道 c1: 正在启动全部数据文件备份集
通道 c1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00004 名称=F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 c1: 正在启动段 1 于 2013-07-23 17:24:49
通道 c1: 已完成段 1 于 2013-07-23 17:24:50
段句柄=E:\BACKUP\DATA\BAK_8LOFFQN1 标记=TAG20130723T172449 注释=NONE
通道 c1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 2013-07-23 17:24:50
启动 Control File and SPFILE Autobackup 于 2013-07-23 17:24:50
段 handle=E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-0E comment=NONE
完成 Control File and SPFILE Autobackup 于 2013-07-23 17:24:54
释放的通道: c1
释放的通道: c2
configure controlfile autobackup off;
--(2).删除一个表空间
SQL>  select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF  
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF
drop tablespace test including contents and datafiles;
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF
--(3).模拟删除控制文件
SQL> show parameters control_files;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      F:\APP\ADMINISTRATOR\ORADATA\O
                                                 RCL\CONTROL01.CTL, F:\APP\ADMI
                                                 NISTRATOR\ORADATA\ORCL\CONTROL
                                                 02.CTL, F:\APP\ADMINISTRATOR\O
                                                 RADATA\ORCL\CONTROL03.CTL
shutdown immediate;
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
--(3)启动数据库,查看错误日志
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2538741760 bytes
Fixed Size                  2257872 bytes
Variable Size            1627393072 bytes
Database Buffers          889192448 bytes
Redo Buffers               19898368 bytes
ORA-00205: ?????????, ??????, ???????
---(4).利用手动备份恢复
C:\>rman target /
恢复管理器: Release 11.2.0.3.0 - Production on 星期二 7月 23 17:31:04 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
已连接到目标数据库: ORCL (未装载)
/****************************常见错误***************************************
--由于控制文件丢失,未装载数据库.所以不能查询备份情况
RMAN> list backup of controlfile;  
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: list 命令 (在 07/23/2013 15:03:06 上) 失败
ORA-01507: 未装载数据库
---备份为备份到快速恢复区,所以不能找到备份
RMAN> restore controlfile from autobackup;
启动 restore 于 2013-07-23 15:03:40
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
恢复区目标: F:\arch
用于搜索的数据库名 (或数据库的唯一名称): ORCL
通道 ORA_DISK_1: 在恢复区中没有找到 AUTOBACKUP
由于未设置 DBID 而未尝试使用格式 "%F" 搜索 AUTOBACKUP
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 07/23/2013 15:03:41 上) 失败
RMAN-06172: 没有找到 AUTOBACKUP, 或者指定的句柄不是有效副本或片段
**********************************************************************/
RMAN> restore controlfile from 'E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-0E';
启动 restore 于 2013-07-23 17:31:28
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 2013-07-23 17:31:30
RMAN> alter database mount;
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF
---还原的控制文件中存在新建的表空间TEST.
RMAN> recover database skip tablespace "TEST";
启动 recover 于 2013-07-23 17:36:32
使用通道 ORA_DISK_1
执行: alter database datafile 5 offline
正在开始介质的恢复
线程 1 序列 2 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 存在于磁盘上
归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 线程=1 序列=2
介质恢复完成, 用时: 00:00:01
完成 recover 于 2013-07-23 17:36:39
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF
F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF
---表空间TEST消失了.
RMAN> alter database open resetlogs;
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     1
下一个存档日志序列   1
当前日志序列           1
SQL> alter system switch logfile;
系统已更改。
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     1
下一个存档日志序列   2
当前日志序列           2
******************************************
7.缺失归档日志
******************************************
----1.数据库开启归档
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     3
下一个存档日志序列   5
当前日志序列           5
----2.新建测试表
create tablespace test
datafile 'F:\app\administrator\oradata\orcl\test.dbf'
size 100m
autoextend on
next 10m maxsize unlimited
extent management local autoallocate
segment   space management auto;
select file_name from dba_data_files;
create table t1
(
sid number not null primary key,
sname varchar2(20)
)tablespace test;
insert into t1 values(101,'A');
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     4
下一个存档日志序列   6
当前日志序列           6
SQL> alter system switch logfile;
系统已更改。
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     5
下一个存档日志序列   7
当前日志序列           7
set linesize 300
col name for a60
select  name,sequence#,archived,status
from v$archived_log where status='A' and archived='YES' ;
NAME                                                          SEQUENCE# ARC S
------------------------------------------------------------ ---------- --- -
F:\ARCH\ARC0000000006_0821554663.0001                                 6 YES A
----3.利用手动备份控制文件和参数文件
run {
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to 'E:\backup\controlfile\bak_%F';
allocate channel c1 device type disk format  'E:\backup\data\bak_%u';
allocate channel c2 device type disk format 'E:\backup\data\bak_%u';
backup tablespace "TEST" ;
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
RMAN> list backup of controlfile;
备份集列表
===================
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ -------------------
240     Full    10.14M     DISK        00:00:02     2013-07-24 11:16:17
        BP 关键字: 245   状态: AVAILABLE  已压缩: NO  标记: TAG20130724T111615
段名:E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130724-01
  包括的控制文件: Ckp SCN: 42235305     Ckp 时间: 2013-07-24 11:16:15
----4.插入数据并归档
SQL> select * from t1;
       SID SNAME
---------- --------------------
       101 A
insert into t1 values(102,'B');
SQL> commit;
提交完成。
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     5
下一个存档日志序列   7
当前日志序列           7
alter system switch logfile;
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     6
下一个存档日志序列   8
当前日志序列           8
set linesize 300
col name for a60
select  name,sequence#,archived,status
from v$archived_log where status='A' and archived='YES' ;
NAME                                                          SEQUENCE# ARC S
------------------------------------------------------------ ---------- --- -
F:\ARCH\ARC0000000006_0821554663.0001                                 6 YES A
F:\ARCH\ARC0000000007_0821554663.0001                                 7 YES A
insert into t1 values(103,'C');
commit;
alter system switch logfile;
insert into t1 values(104,'D');
commit;
alter system switch logfile;
insert into t1 values(105,'E');
commit;
alter system switch logfile;
archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\arch
最早的联机日志序列     9
下一个存档日志序列   11
当前日志序列           11
set linesize 300
col name for a60
select  name,sequence#,archived,status
from v$archived_log where status='A' and archived='YES' ;
NAME                                                          SEQUENCE# ARC S
------------------------------------------------------------ ---------- --- -
F:\ARCH\ARC0000000006_0821554663.0001                                 6 YES A
F:\ARCH\ARC0000000007_0821554663.0001                                 7 YES A
F:\ARCH\ARC0000000008_0821554663.0001                                 8 YES A
F:\ARCH\ARC0000000009_0821554663.0001                                 9 YES A
F:\ARCH\ARC0000000010_0821554663.0001                                10 YES A
----5.模拟删除控制文件
SQL> show parameters control_files;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      F:\APP\ADMINISTRATOR\ORADATA\O
                                                 RCL\CONTROL01.CTL, F:\APP\ADMI
                                                 NISTRATOR\ORADATA\ORCL\CONTROL
                                                 02.CTL, F:\APP\ADMINISTRATOR\O
                                                 RADATA\ORCL\CONTROL03.CTL
shutdown immediate;
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
----6.启动数据库,查看错误日志
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2538741760 bytes
Fixed Size                  2257872 bytes
Variable Size            1627393072 bytes
Database Buffers          889192448 bytes
Redo Buffers               19898368 bytes
ORA-00205: ?????????, ??????, ???????
-----7.利用手动备份恢复
--7.1 恢复控制文件
C:\>rman target /
恢复管理器: Release 11.2.0.3.0 - Production on 星期三 7月 24 12:36:11 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
已连接到目标数据库: ORCL (未装载)
RMAN> restore controlfile from 'E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130724-01';
启动 restore 于 2013-07-24 12:36:31
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL
输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 2013-07-24 12:36:33
--7.2 装载数据库
RMAN> alter database mount;
--7.3 恢复数据库
-7.3.1 recover database
RMAN> recover database;
启动 recover 于 2013-07-24 12:37:50
启动 implicit crosscheck backup 于 2013-07-24 12:37:50
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
已交叉检验的 1 对象
完成 implicit crosscheck backup 于 2013-07-24 12:37:51
启动 implicit crosscheck copy 于 2013-07-24 12:37:51
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 2013-07-24 12:37:51
搜索恢复区中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 9 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG 存在于磁盘上
线程 1 序列 10 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 存在于磁盘上
线程 1 序列 11 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 存在于磁盘上
归档日志文件名=F:\ARCH\ARC0000000007_0821554663.0001 线程=1 序列=7
无法找到归档日志
归档日志线程=1 序列=8
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 07/24/2013 12:37:58 上) 失败
RMAN-06054: 介质恢复正在请求未知的线程 1 序列 8 的归档日志以及起始 SCN 42235549 
--提示需要8的归档日志
SQL> select sequence# from v$log where status='CURRENT';
 SEQUENCE#
----------
         7   --当前还原的控制文件中看到的是日志7
/************
提示需要8的归档日志,当前还原的控制文件中看到的是日志7,
只要让oracle放弃归档日志8,那么恢复就可以继续进行.
************/
--7.3.2备份控制文件到trace
alter database backup controlfile to trace;
select value from v$diag_info
where name='Default Trace File';
VALUE
---------------------------------------------------------------------
F:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_ora_757704.trc
查看备份到追踪文件的控制文件
show parameter user_dump_dest;
NAME                TYPE        VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest      string      F:\app\Administrator\diag\rdbms\orcl\orcl\trace
select a.spid from v$process a, v$session b
where a.addr=b.paddr and b.username='SYS';
---内容如下:
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 584
LOGFILE
  GROUP 1 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF'
CHARACTER SET ZHS16GBK
;
--7.3.3先关闭数据库
SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
--7.3.4启动数据库到nomount状态
SQL> startup  force nomount;
ORACLE 例程已经启动。
Total System Global Area 2538741760 bytes
Fixed Size                  2257872 bytes
Variable Size            1627393072 bytes
Database Buffers          889192448 bytes
Redo Buffers               19898368 bytes
--7.3.5 新建控制文件
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 584
LOGFILE
  GROUP 1 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF',
  'F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF'
CHARACTER SET ZHS16GBK
;
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
MOUNTED
---7.3.6 利用新建的控制文件recover database
RMAN>recover database;
启动 recover 于 2013-07-24 12:52:16
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
正在开始介质的恢复
无法找到归档日志
归档日志线程=1 序列=11
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 07/24/2013 12:52:20 上) 失败
RMAN-06054: 介质恢复正在请求未知的线程 1 序列 11 的归档日志以及起始 SCN 42237323
SQL> select sequence#,status,group# from v$log;
 SEQUENCE# STATUS               GROUP#
---------- ---------------- ----------
        10 INACTIVE                  1
         9 INACTIVE                  3
        11 CURRENT                   2   --日志11在联机日志中
     
SQL>col member for a50
SQL>select * from v$logfile;
    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         2 STALE   ONLINE  F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG       NO --需要的日志
         1 STALE   ONLINE  F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG       NO
         3 STALE   ONLINE  F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG       NO
SQL> recover database using backup controlfile;
ORA-00279: ?? 42237323 (? 07/24/2013 11:50:11 ??) ???? 1 ????
ORA-00289: ??: F:\ARCH\ARC0000000011_0821554663.0001
ORA-00280: ?? 42237323 (???? 1) ??? #11 ?
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG
F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG
已应用的日志。
完成介质恢复。
--7.5打开数据库
alter database open resetlogs;
--7.6找回临时数据文件
alter tablespace temp add tempfile 'F:\app\Administrator\oradata\orcl\temp02.dbf'
reuse;
--7.7 catalog命令找回备份信息
RMAN> list backup;
使用目标数据库控制文件替代恢复目录
说明与资料档案库中的任何备份都不匹配
catalog start with 'E:\backup\';
搜索与样式 E:\backup\ 匹配的所有文件
数据库未知文件的列表
=====================================
文件名: E:\BACKUP\controlfile\BAK_C-1320546556-20130723-08
文件名: E:\BACKUP\controlfile\BAK_C-1320546556-20130723-0C
文件名: E:\BACKUP\controlfile\BAK_C-1320546556-20130723-0E
文件名: E:\BACKUP\controlfile\BAK_C-1320546556-20130724-01
文件名: E:\BACKUP\data\BAK_8QOFHPFU
是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: E:\BACKUP\controlfile\BAK_C-1320546556-20130723-08
文件名: E:\BACKUP\controlfile\BAK_C-1320546556-20130723-0C
文件名: E:\BACKUP\controlfile\BAK_C-1320546556-20130723-0E
文件名: E:\BACKUP\controlfile\BAK_C-1320546556-20130724-01
文件名: E:\BACKUP\data\BAK_8QOFHPFU
RMAN> list backup;
备份集列表
===================
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ -------------------
1       Full    1.13M      DISK        00:00:00     2013-07-24 11:16:14
        BP 关键字: 1   状态: AVAILABLE  已压缩: NO  标记: TAG20130724T111614
段名:E:\BACKUP\DATA\BAK_8QOFHPFU
  备份集 1 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间            名称
  ---- -- ---- ---------- ------------------- ----
  5       Full 42235299   2013-07-24 11:16:14 F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF