oracle灾难恢复实例
oracle灾难恢复实例

oracle灾难恢复实例

一、整体说明
恢复日志的一些差别:
using backup controlfile和 until cancel 区别
1. recover database using backup controlfile
2. recover database until cancel
3. recover database using backup controlfile until cancel;
4. recover database until cancel using backup controlfile;
区别:
1. 如果丢失丢失当前控制文件,用冷备份中的控制文件恢复的时候。用来告诉oracle,不要以controlfile中的scn作为恢复的终点;
2. 如果丢失current/active redo的时候。手动指定终点。
3. 如果 丢失当前controlfile并且current/active redo都丢失,会先去 自动 应用归档日志,可以实现最大的恢复(基本上没有数据丢失);
4. 如果 丢失当前controlfile并且current/active redo都丢失,以旧的redo中的scn为恢复终点。因为没有应用归档日志,所有会丢失数据。

二、(文件系统存储)如果只有备份文件,没有日志文件的恢复
1.–安装系统及oracle相同的版本
–同时创建与要恢复的数据库相同的文件路径
2.首先建好spfile
create spfile from pfile;
orapwd file=’/u01/oracle/products/9.2.0/dbs/orapw’ password
=petrel entries=10
3.恢复控制文件
rman target /
RMAN startup nomount
RMAN restore controlfile (to ‘/u02/tmp/’) from ‘/u02/oracle/RMTEST_CTL_20090819_7_1.bak’;
4.恢复数据库文件
RMAN alter database mount;
RMAN restore database;
RMAN recover database;
正常启动
startup(会报ORA-01589: must use RESETLOGS or NORESETLOGS option for database open)
alter database open noresetlogs;
如果报 ora-01588 则:alter database open resetlogs

二、(文件系统存储)如果要恢复归档日志
1.–安装系统及oracle相同的版本
–同时创建与要恢复的数据库相同的文件路径
2.首先建好spfile
create spfile from pfile;
3.恢复控制文件
rman target /
RMAN startup nomount
RMAN restore controlfile from ‘/u02/oracle/RMTEST_CTL_20090819_7_1.bak’;
4.数据库进入mount状态
alter database mount;
5.恢复数据库的文件
restore database;
6.恢复日志文件
–recover database until cancel 这种方式要求手工指定终点,会数据丢失
–recover database using backup controlfile 如果丢失当前控制文件,用冷备份中的控制文件恢复的时候。用来告诉oracle,不以controlfile中的scn作为恢复的终点
这样会报很多错误:如:
ORA-00279: 更改 72687 (在 01/29/2007 13:39:37 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:ORACLEARCHIVEARC00003.001
ORA-00280: 更改 72687 对于线程 1 是按序列 # 3 进行的

指定日志: { RET =suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 72794 (在 01/29/2007 13:42:19 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:ORACLEARCHIVEARC00004.001
ORA-00280: 更改 72794 对于线程 1 是按序列 # 4 进行的
ORA-00278: 此恢 复不再需要日志文件 ‘D:ORACLEARCHIVEARC00003.001’

ORA-00279: 更改 72823 (在 01/29/2007 13:42:22 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:ORACLEARCHIVEARC00005.001
ORA-00280: 更改 72823 对于线程 1 是按序列 # 5 进行的
ORA-00278: 此恢复不再需要日志文件 ‘D:ORACLEARCHIVEARC00004.001
并且在 恢复完成后,用alter database open resetlogs/noresetlogs时报如下错误
ERROR 位于第 1 行:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: ‘D:ORACLEORADATAMYDBSYSTEM01.DBF’
所以需要再次以
recover database using backup controlfile until cancel;报:
ORA-00279: 更改 72823 (在 01/29/2007 13:42:22 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:ORACLEARCHIVEARC00005.001
ORA-00280: 更改 72823 对于线程 1 是按序列 # 5 进行的表示比归档的日志大一个号进行
结束后:
再以 alter database open resetlogs
另注:
recover datafile 5;(报错时提示的文件号)

发表评论