******************************************

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 ?

指定日志: {=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

还原oracle控制文件位置,oracle 11.2 控制文件还原相关推荐

  1. alert文件位置 oracle,Oracle11gAlertlog文件位置的问题

    Oracle至11g后的alert log有所变动,oracle数据库以XML与传统的文本两种格式提供Alert log日志了.新的日志位置由Automatic Diag Oracle至11g后的al ...

  2. oracle冷备修改数据文件位置,Oracle冷备迁移脚本(文件系统)

    Oracle冷备迁移脚本(文件系统) 两个脚本: 网络拷贝到目标服务器的脚本cpdb16.sh 1. 配置文件生成脚本 #!/bin/bash #Usage: create db.config fil ...

  3. oracle jdbc jar位置,Oracle JDBC ojdbc6 Jar作为Maven依赖项

    我似乎无法让Maven将ojdbc6.jar文件捆绑到项目的war文件中.直接为Hibernate工具指定依赖项时,我可以在POM文件中使用它.但是它不会与项目的war文件捆绑在一起,因此我的项目无法 ...

  4. 43. Systemd的Unit配置详解,unit文件位置,优先级,unit类型,unit文件字段详解,Unit/Service/Install字段,添加mysql服务等例子

    Systemd的Unit配置详解,unit文件位置和优先级,unit文件类型,unit文件字段详解,[Unit]字段,[Service]字段,[Install]字段,添加服务,创建.service 文 ...

  5. php.ini在哪里 微赞_Php.ini文件位置在哪里 Php.ini文件找不到

    Php.ini文件是php的一个配置文件,在windows主机中如果你未修改配置文件php.ini文件肯定是和你的php安装目录在一起的,但在linux中好像不一样,下面我来介绍查找php.ini位置 ...

  6. Php.ini文件位置在哪里 Php.ini文件找不到

    转载自:http://www.php100.com/html/php/rumen/2013/0831/26.html [导读] Php ini文件是php的一个配置文件,在windows主机中如果你未 ...

  7. host文件位置以及如何修改hosts文件

    hosts文件位置 C:\Windows\System32\drivers\etc\hosts hosts文件修改方法 1.找到hosts文件: 2.更改hosts为允许安全控制状态: 3.将host ...

  8. linux中passwd文件位置,linux中/etc/passwd文件解析

    /etc/passwd其实保存的是用户的相关信息而不是像名字上说的密码信息,之所以这样取文件名是因为在Linux2.0之前确实保存着密码信息,之后出于安全性考虑才将用户信息和密码分开存储.现在的密码已 ...

  9. oracle数据库激活控制文件位置,Oracle数据库之Oracle 重建控制文件一例

    本文主要向大家介绍了Oracle数据库之Oracle 重建控制文件一例,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 环境:OEL 5.7 + Oracle 10.2.0.5 ...

最新文章

  1. 抬头看路,埋头干活(一)
  2. java提交数据到另一个页面_JS实现把一个页面层数据传递到另一个页面的两种方式...
  3. iOS 11开发教程(一)
  4. 解决 Ubuntu 18.04 无法关机的问题
  5. Code Issues 2,637 Pull requests 0 Projects 1 Wiki Security Insights Settings 使用filter node快速找到XML f
  6. Oracle/PLSQL Repeat Until Loop
  7. python期末复习卷_【期末复习卷A】六年级科学上册期末复习试题
  8. Golang教程:类型
  9. CGI form标签学习
  10. 优化Angularjs的$watch方法
  11. NVIDIA DeepStream5.0官方总结(改动版)
  12. 2014上海全国邀请赛 解题报告
  13. jQuery新的事件绑定机制on()
  14. 大数据学习总结(5)参考elk技术架构
  15. VB制作控件之图片命令按钮➀
  16. war包的解压和打包为原来的war包的方法
  17. 基于AE的GIS二次开发作业文档
  18. eovs实训报告总结心得_实训报告心得体会
  19. 凸优化之共轭函数(3)
  20. 网红释一刀考察潮汕特色美食土虾

热门文章

  1. 火狐用有道词典不能屏幕取词的解决办法
  2. 外贸视频教程[外贸人zencart自助建站视频教程]:第一课
  3. 服务台与事件管理解决方案
  4. 314.二叉树的垂直遍历
  5. 27muduo_net库源码分析(三)
  6. ogg sqlserver2012 抽取不到日志_ogg抽取进程与数据字典的关系
  7. 正反斜杠的区别_电脑中的正斜杠(/)与反斜杠(\)的区别
  8. 【免费毕设】ASP.NET 城市酒店入住信息管理系统 (源代码+lunwen)
  9. 【论文写作】精品课程教学网站中用户管理如何写
  10. tl wdr5660虚拟服务器,TP-Link TL-WDR5660路由器怎么设置?