在网上看了一些关于ORA-01033 ORACLE联机日志文件丢失或损坏的处理方法,但是网上的例子中大都是自行删除LOG文件后的例子,除了磁盘损坏,造成的redo log文件丢失外,还有什么问题能引起这个文件丢失呢?我的控制文件和这些个redo01-03.Log文件,都在同一个文件夹下,不知道是什么原因,控制文件都在,唯独redo01-03.Log,3个LOG文件没有了。如果是因为数据库启动时候,停电造成的非法关机,能不能彻底解决这一Log丢失的问题呢?比方说,不让ORACLE记录归档日志呢?还是只能采用冷备份文件的方式?丢了就替换上?
注:数据库处于noarchivelog非归档模式。

解决方案 »

  1.   

    楼主需要分清楚redo log 和 archive log.
    redo log总是存在的.非归档模式只是不记归档日志,redo还是有的.
      

  2.   

    REDO日志丢失,而处于同一存储介质的控制文件却没有问题,这好象没有什么道理?请找下ALERT日志文件看看里面有什么异常?
    联机日志文件非常重要,你想更安全的话,可以一组做两,三个文件,分别放到不同的存储上去。
      

  3.   

    SQL> recover database until cancel;
    完成介质恢复。
    SQL> alter database open resetlogs;数据库已更改。
      

  4.   

    我仔细查看了alter.log文件,没有发现有什么特别之处。
    我按照网上说的,在做到alter database open步骤的时候就提示ora-03113了。很奇怪这些redo文件为啥没有了,在做手动创建EM时候,对这些LOG难道有影响的吗?之前我除了手动创建EM,没再对库做任何操作了。
      

  5.   

    我理解的redo log就是重做日志文件。既然这个文件必须要存在,我就把它备份好。archivelog 我理解的是数据库的归档模式,属于是归档还是不归档,如果是归档模式,对某些dbf数据文件遇到损害的情况,还可以恢复。这么理解不错吧。
      

  6.   

    你的db处于 no archivelog 是没有archivelog的,你的db不能热备和rman备份,只能做冷备。
    当datafile坏掉后,只能用冷备的文件拷贝回来恢复,备份到坏掉这段时间的数据只能丢失掉online redolog 全部丢失这个情况很诡异,建议你查一下系统的日志如linux下的/var/log/message 和 $ORACLE_BASE/admin/<ORACLE_SID>/bdump/alert_<ORACLE_SID>.log
    正常情况下不会出现三组日志都不见的情况。除非有人手动删除
      

  7.   

    看来,我还是没弄明白这些日志的意思。
    select log_mode from v$database获知log_mode为noarchivelog。
    但是
      SQL>  select group#,sequence#,archived,status from v$log;    GROUP#  SEQUENCE# ARC STATUS
    ---------- ---------- --- ----------------
             1          2 NO  CURRENT
             2          0 YES UNUSED
             3          1 NO  INACTIVE
    里面显示有个的archived是YES弄不懂v$log里的archived和v$database里的log_mode分别代表什么了?
      

  8.   

    弄不懂v$log里的archived和v$database里的log_mode分别代表什么了?
    既然log_mode为noarchivelog了,为什么2还archived是yes呢?