ORA-01194: When Opening Database After Restoring Backup_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4719 | 回复: 0   主题: ORA-01194: When Opening Database After Restoring Backup        下一篇 
匿名用户
发表于: IP:您无权察看 2011-11-24 15:10:39 | [全部帖] [楼主帖] 楼主

<P></P><P>当使用以下备份进行恢复 1, 一个有效地脱机备份 2, 有效地在线备份并应用一些归档日志 当打开数据库的时候收到错误 ORA-01194: file needs more recovery to be consistent 原因:一个不完全恢复会话开始,但是没有足够的重做日志被应用于保持文件的一致性 当数据库中的命名文件在上次打开以后没有被干净的关掉 这个错误信息最有可能的原因就是在进行不完全恢复之前忘记从备份中恢复该文件 操作: 这个文件必须被恢复到它没有被修改之前的一个时间点 应用更多的重做日志一直文件达到一致或者从之前的备份中恢复文件并且重复进行恢复 For more information about recovery, see the index entry "recovery" in the . Problem Explanation: ==================== 一个合适的脱机备份要在备份之前先通过shutdown immediate 或者shutdown normal干净的关掉数据库。这样就将脏数据刷新到数据文件中并确保在恢复的时候,那些脏数据不需要以任何形式进行恢复。 当进行脱机备份时,以上操作失败,此时就需要应用current 重做日志使数据文件保持一致。如果你已经关掉了数据库,并且对在线重做日志进行了备份,那么就能够使用current 重做日志对数据文件进行恢复。如果数据库没有被关闭,那么就不能使用这种备份进行还原。 数据文件在数据库在打开时的状态为Online Fuzzy,并且当数据库被shutdown cleanly时,其状态将会被清除。 一个有效的在线备份,当备份数据文件的时候,要保证数据库(10g及以上版本)或者表空间处于备份模式下(begin backup)ORACLE 会将数据文件的头部标记为热备模式,此时,在备份期间允许对文件进行修改。数据文件将进行介质恢复从以上时间点到A)在归档日志结束备份之后。或者B)到当前的重做日志 数据文件处于热备模式下的状态称为Hot Backup In Progress fuzzy。当数据文件进入热备模式,文件将会被置为该状态,当文件不属于热备份模式时,该状态将会被取消,或者可以通过进行完全恢复来使当前的重做日志变为end-of-redo标志。 There are two other fuzzy flags, but they are not discussed here. Solution Description: ===================== 为了使任何一个数据库都能够以resetlogs打开,必须要满足以下三个条件: 1. 所有的在线,read-write数据文件必须在同一时间执行检查点 2. 没有数据文件处于fuzzy状态,意味着将不会设置fuzzy标志 3. 没有数据文件处于热备模式下 当数据库处于mount状态下,执行以下查询来确定文件是否满足以上3个条件: 1. SELECT DISTINCT (TO_CHAR (CHECKPOINT_CHANGE#)) FROM V$DATAFILE_HEADER; 该查询将为所有的online, read-write数据文件返回一个结果行 当数据文件进行介质恢复的时候,oracle将会提前对数据文件执行检查点,so that we don't have to start recovery over, but it will resume from where it left off.我们能够通过这来监视恢复进程以及可以看到之前执行检查点的文件已经比较接近于最近的文件。 2. SELECT DISTINCT (FUZZY) FROM V$DATAFILE_HEADER; 该查询应该只返回一行记录且值为:NO 要注意这并不是表示设置的是哪一种fuzzy标志,而是告诉我们是否有fuzzy标志被设置 4. SELECT DISTINCT (STATUS) FROM V$BACKUP; 将返回一行值:NO ACTIVE 只有当以上的条件均满足,才可以以resetlogs形式打开数据库。V$DATABASE 中的OPEN_RESETLOGS列也可以用来返回 REQUIRED, NOT ALLOWED or ALLOWED值。 Solution Explanation: ===================== 对于脱机备份,如果提示ORA-1194,最常见的问题就是数据库还处于打开状态,或者在备份的时候没有被合适的shutdown。这将会导致备份不可用,在当时它需要访问当前重做日志,并且随后的重做日志以清除在线的fuzzy的标识。可以通过查看数据库在进行备份的时间段中的警告日志来确认数据库在整个备份期间是否已经shutdown。 对于在线备份 同样也可以通过查看以begin/end backup 命令记录的警告日志,确保应用至少有足够的归档,使得旧的日志序列在备份结束的时候是active状态。 当你的数据库不是在指定备份状态下进行的备份,也会出现相同的错误。在这种场景下除了使用归档日志和current redolog 清除fuxxy标识使得可以进行完全恢复,也可以在进行脱机备份。</P><P></P>


赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论