找回消失的联机日志文件


数据库环境简介:

  操作系统: Windows XP

  数据库版本: Oracle 10.2.0.1

  归档模式: 非归档

  备份策略: 没有任何的备份策略,无备份可用

  用途: 测试数据库

  【故障描述】

  今天在启动本机测试用数据库时惊现数据库无法启动,提示如下:


  C:\>sqlplus / as sysdba
  SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jun 16 18:25:43 2009
  Copyright (c) 1982, 2005, Oracle. All rights reserved.
  Connected to an idle instance.
  SQL> startup;
  ORACLE instance started.
  Total System Global Area 167772160 bytes
  Fixed Size 1247876 bytes
  Variable Size 75498876 bytes
  Database Buffers 83886080 bytes
  Redo Buffers 7139328 bytes
  Database mounted.
  ORA-00313: open failed for members of log group 1 of thread 1
  ORA-00312: online log 1 thread 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\SEC\REDO01.LOG'
  SQL>

  如上提示,系统找不到联机日志文件,一身冷汗,就算是测试数据库也不能就这样“挂”了啊!

  顺着错误提示的目录,进入到日志文件所在的目录,哇塞,全部的日志文件都不见了!(现在想想,可能是因为这个测试数据库我好久没有问津了,也许在某一次的C盘文件批量整理的过程中连带这些重要的文件一同“整理”掉了),心中不免有些紧张,转念一想幸好是测试数据库,释然一下下,于是……我决定————恢复之,现把整个的恢复过程记录如下,希望屏幕前的您不要再犯我这样的错误了,作为一位DBA是绝对不应该允许自己犯这样的错误,即使是纯纯的测试数据库

  【故障分析】

  因为是全部的日志文件都被删除了,所以既包含当前联机日志,也包含非当前联机日志,我恢复的顺序是:先通过Clear的方式恢复非当前联机日志,再通过设置隐含参数_allow_resetlogs_corruption=TRUE的方式恢复当前联机日志(使用这种极端的恢复方式是我不想看到的,没有办法,谁叫我没有备份呢,找了半天连冷备都没做过。如果您有备份,记住要优先考虑使用备份进行恢复)。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3