ITPub博客

首页 > 数据库 > Oracle > Backup And Recovery User's Guide-介质恢复问题解决

Backup And Recovery User's Guide-介质恢复问题解决

原创 Oracle 作者:LuiseDalian 时间:2014-03-05 11:47:50 0 删除 编辑

介质恢复问题解决

关于用户管理的介质恢复的问题

29.4  介质恢复问题

问题

描述

丢失或错误地命名了归档日志

恢复停止,因为数据库不能找到在控制文件中记录的归档日志

当打试图开数据库时,返回ORA-1113错误,表明数据文件需要恢复

这个错误会因为如下原因而发生:

n  正在执行不完全恢复,但是还原所有需要的数据文件的备份的时候失败了.

n  在数据文件达到一致的SCN之前,不完全恢复停止了

n  正在从联机备份恢复数据文件,但没有足够的redo被应用来使数据文件一致

n  正在执行控制文件的恢复,并且没有指定需要的联机重做日志的位置

n  在试图打开数据库时,数据文件正在进行介质恢复

n  在执行RECOVER DATABASE命令之前,需要恢复的数据文件没有联机,因此不被恢复.

Redo记录问题

2种可能的情况:

n  恢复停止,因为失败的一致性检查,称为stuck recovery问题.

当底层操作系统或存储系统丢失了写,而这个写是在正常的操作过程中由数据库执行的.

n  当应用重做日志的时候,数据库发出内部错误信号.这个问题可能是由Oraclebug引起的。

如果没有使用checksum verfication,则对redo或数据块的损坏也可能引起错误。

损坏的归档日志

当在存储系统上存储或在存储系统之间拷贝时,日志可能被损坏.

如果DB_BLOCK_CHECKSUM是开启的,则数据库通常会发一个校验错误信号;

如果校验检查被禁用了,则可能出现日志损坏。

具有不兼容的并行redo格式的归档日志

如果开启了并行redo功能,则数据库以新的格式产生redo

在版本9.2之前不能检查并行redo的格式,并显示下面的信息:

External error 00303, 00000, "cannot process Parallel Redo",说明出现了不一致。

损坏的数据块

数据文件的备份可能包含损坏的数据块,这些数据块可能是在恢复的过程中或拷贝为备份时损坏的。

如果DB_BLOCK_CHECKSUM被开启,则在正常的操作过程中数据库会计算每个数据块进行校验,并且在写到磁盘之前将校验写到数据块中。当后面数据库读取数据块的时候,它会重新计算校验并和存储的值进行比较。如果不匹配,则数据库会发一个校验错误的信号。如果校验被禁用了,这个问题也能表现为日志损坏。

随机问题

在恢复过程上发生的内存损坏或其它短暂的问题。

 

介质恢复问题的征兆通常是在恢复的过程中发出的外部或内部信号。

例,一人外部错误表明redo块或数据块校验验证失败。内部错误可以由数据库的bug或底层操作系统或硬件的错误引起。

 

如果在恢复数据库备份的过程中介质恢复遇到问题,则不管它是一个stuck恢复问题或是一个redo应用的问题,

数据库总是停止,并使数据文件处于一致状态的恢复,即在失败之前的一个一致的SCN。然后可以做:

以只读方式打开数据库,查问问题

n  如果OPEN RESETLOGS的需要已经被满足,使用RESETLOGS选项打开数据库。

n  RESETLOGS的限制也会应用到打开物理备用数据库,因为备用数据库是以介质恢复的形式被更新的。

 

通常以只读方式或使用RESETLOGS选项打开数据库,要求所有联机的数据文件被恢复到相同的SCN

如果这个需求没有满足,则在你试图打开数据库时,数据库会发出ORA-1113或其它错误。如 29.4所示

 

响应发生在下列阶段的介质恢复问题的方法:

1.        尝试识别问题的起因。如果需要的话,运行一个试验性的恢复。

2.        如果问题与丢失重做日志相关,或假设有重做日志、内存、数据块损坏,则尝试使用 29.5中的方法解决这解问题。

如果不能使用 29.5中的方法解决问题,则做下列之一:

n  如果正在恢复整个数据库备份,使用RESETLOGS选项打开数据库。

如果已经执行了一系列介质恢复,则数据库包含到损坏发生时的SCN的所有改变,但不包含在这个SCN上发生的改变。

从这个SCN开始向前的改变不会包含在数据库的恢复中。

如果已经还原了联机备份,则只有恢复了在redo流中一直到达ALTER…END BACKUP期间所有的操作之后,

OPEN RESETLOGS才能成功执行。

n  通过允许对损坏的数据块的介质恢复而继续进行介质恢复。在介质恢复结束之后,试着使用RMAN执行块介质恢复。

n  最后的方法就是给Oracle Support Service打电话。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1101383/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5676671