ORA-01194: 文件1需要更多的恢复来保持一致性 恢复备份后打开数据库

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]

ORA-01194: 文件1需要更多的恢复来保持一致性

oerr ora 1194
01194, 00000, "file %s needs more recovery to be consistent"
// *Cause: An incomplete recovery session was started, but an insufficient
// number of logs were applied to make the file consistent. The
// reported file was not closed cleanly when it was last opened by
// the database. It must be recovered to a time when it was not being
// updated. The most likely cause of this error is forgetting to
// restore the file from a backup before doing incomplete recovery.
// *Action: Either apply more logs until the file is consistent or restore
// the file from an older backup and repeat recovery.

 

问题描述:

====================

 

已经还原备份

 

  • 你认为的有效脱机备份

或者是

b)一个有效的联机备份,之后运用一些归档日志,但是打开数据库时会收到以下报错:

 

ORA-01194: 文件<name>需要还原更多以保持一致

 

原因:不完全恢复会话已经启动,但是应用redo日志的数量不足以使文件一致。已命名的文件上次被数据库打开后,没有完全关闭。

该报错最有可能的原因是在不完全恢复之前,忘记从备份中还原文件。

 

操作:必须将文件还原到未更新时的状态。无论是运用更多的redo日志直到使文件一致,或者是从旧的备份中还原该文件并重复恢复。

有关恢复的更多信息,请参阅<Oracle7 Server Administrator’s Guide>中的索引条目“recovery”

 

 

问题说明:

====================

 

正常的的离线备份需要在备份之前完全关闭数据库,无论是使用即时关闭或正常关机选项。这样将所有坏块冲到数据文件,并确保还原时,他们不需要任何形式的恢复。

 

如果脱机备份时没有做到这一点,那么就需要当前的联机redo日志以使数据文件一致。如果你真的关闭数据库,并备份联机redo日志,那么你就可以将它们还原并恢复使用当前redo日志。如果数据库没有关闭,就不能使用此备份进行恢复。

 

数据库打开时数据文件的状态称为Online Fussy,并在数据库彻底关闭时被清除。

 

 

正常的在线备份,当文件进行备份时需要数据库(10g及以上)或表空间处于备份模式时。事实是,Oracle标记数据文件头,该文件正处于热备份模式,允许在备份过程中更新到文件。数据文件需要从那个时候起进行介质恢复,要么在a)归档日志结束备份后 或是b)当前redo日志。

热备份模式下数据文件的状态称为Hot Backup In Progress fuzzy。当数据文件进入热备份模式设置该状态,脱离备份模式时将其清除,或者通过完全恢复,我们得到当前redo日志的redo末尾标记。

 

还有其他两个模糊的标志,但在此不再赘述。

 

解决方案描述:

=====================

 

为了任意数据库都可以打开重置日志,必须满足三个条件:

1.所有联机的,读写数据文件必须同时检测。

2.没有模糊的数据文件。这意味着不必设置模糊标志。

3.没有任何数据文件在热备份模式

 

可以在装入数据库时运行下面的查询,以确定此运行:

 

  1. SELECT DISTINCT (TO_CHAR (CHECKPOINT_CHANGE#)) FROM V$DATAFILE_HEADER;

此操作只返回到所有联机、读写数据文件中的一列。由于介质恢复应用于数据文件,Oracle将推动文件的检查,这样就不必从头开始恢复,但它会从停止的地方重新开始。这样我们可以监测恢复过程,也可以看到旧的检查点文件逐渐接近最新的文件。

 

  1. SELECT DISTINCT (FUZZY) FROM V$DATAFILE_HEADER;

此查询只返回到一列: NO

请注意,此操作并不说明设置什么模糊标志,只说明是否设置模糊标志。

 

  1. SELECT DISTINCT (STATUS) FROM V$BACKUP;

此查询只返回到一列: NOT ACTIVE

 

 

只有满足上述条件时,才允许用重置日志打开数据库。V$DATABASE中的OPEN RESETLOGS列也可以用于返回到

REQUIRED, NOT ALLOWED or ALLOWED.

 

解决方案说明:

=====================

 

对于脱机备份,如果报错ORA-1194,通常的问题是在备份过程中,数据库是开着的,或是没有正常关闭。这使得该备份不可用,因为这时候需要访问当前的redo日志,以及后续的redo日志以清除在线模糊标记。可以在备份时检查数据库的的alert.log以验证数据库是否关闭,且整个备份期间都是关闭着的。

 

对于联机备份,收到该报错通常是因为没有足够的归档日志,使数据库越过备份结束标记的时间。也可以在alert.log中检测,因为开始/结束备份的命令在这里开始。确保你至少运用了足够的档案以越过日志序列,且在备份结束时是活跃的。

 

如果备份不在备份模式,也会收到该报错。之后的情况就是脱机备份,除非你选择使用归档日志和当前的redolog,以完全恢复,清除模糊标志。

 

 

搜索词:

=============

 

恢复 还原 模糊 备份 重置日志


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *