zoukankan      html  css  js  c++  java
  • ORA-00376:file x cannot be read at this time

       之前出现过机房断电情况,重启数据库后发现出现ORA-00376的错误。

       通过查询数据文件状态:

    SQL> select file_id,online_status from dba_data_files order by 1;
     
       FILE_ID ONLINE_STATUS
    ---------- -------------
             1 SYSTEM
             2 ONLINE
             3 ONLINE
             4 ONLINE
             5 RECOVER
             6 ONLINE
             7 RECOVER
             8 ONLINE
             9 ONLINE
            10 ONLINE
            11 RECOVER
            12 ONLINE
            13 RECOVER
            14 RECOVER
            15 RECOVER
            16 RECOVER                       

    文件中出现了大量的recover的状态,需要进行介质恢复。

     

    SQL> select file#, status, fuzzy, checkpoint_time, checkpoint_change#,
    resetlogs_change#, resetlogs_time from v$datafile_header where file#=5;

         FILE# STATUS  FUZZY CHECKPOINT_TIME CHECKPOINT_CHANGE# RESETLOGS_CHANGE# RESETLOGS_TIME
    ---------- ------- ----- --------------- ------------------ ----------------- --------------
             5 OFFLINE  YES   2013-6-19 9:52:           38391683            940976 2013-5-15 19:1

     

    当前的数据文件的SCN号为 38391683,需要寻找别这个高的archive log 或redo log。

     

     

    SQL> Select sequence#,name,first_change#,next_change# from v$archived_log;

    SEQUENCE#        NAME                                                                                       FIRST_CHANGE# NEXT_CHANGE#
    ---------- --------------------------------------------------------------------------------                    -------------        ------------
           465 D:APPARCHIVELOGARC0000000465_0815512562.0001                   36366097     36618224
           466 D:APPARCHIVELOGARC0000000466_0815512562.0001                   36618224     36843775
           467 D:APPARCHIVELOGARC0000000467_0815512562.0001                   36843775     37065721
           468 D:APPARCHIVELOGARC0000000468_0815512562.0001                   37065721     37294978
           469 D:APPARCHIVELOGARC0000000469_0815512562.0001                   37294978     37572830
           470 D:APPARCHIVELOGARC0000000470_0815512562.0001                   37572830     37818186
           471 D:APPARCHIVELOGARC0000000471_0815512562.0001                   37818186     38093499
           472 D:APPARCHIVELOGARC0000000472_0815512562.0001                   38093499     38346397
           473 D:APPARCHIVELOGARC0000000473_0815512562.0001                   38346397     38381157

    很幸运,38391683大于473这个最大的archive log 的SCN,我不需archive log 的帮助。recover所需的信息在redo log 中。           

     

    例如:数据文件file_id5的处于recover状态,执行

    alter database recover datafile 5;

    依次恢复状态为recover的数据文件。

     

    再次查看online_statusoffline状态,需要执行

           Alter database  datafile  5 online;

    依次将处于offline的数据文件ONLINE。都online后数据库处于open状态了后,就可以用了。

    如果数据库处于No Archive log 状态的时候,recover所需的信息只能从redo log 中获取,如果此时的redo log被overwrite了,将不能online数据文件,那只能想其他方法了。

     

    Possible causes and solutions summary:
    =====================================

      A. Tablespace or Datafile offline.
      B. Datafile does not exist at the OS level.
      C. Datafile locked by Backup Software.
      D. Incorrectly set ULIMIT on UNIX.
      E. Rollback Segment with active transactions is unavailable
      F. Possible Other Causes.

  • 相关阅读:
    从程序员到项目经理(13):如何管理自己的时间(下)
    从程序员到项目经理(11):每个人都是管理者
    从程序员到项目经理(15):项目管理三大目标
    程序员:伤不起的三十岁
    从程序员到项目经理(9):程序员加油站 再牛也要合群
    从程序员到项目经理(7):程序员加油站 完美主义也是一种错
    从程序员到项目经理(4):外行可以领导内行吗
    ArcGIS API For Android离线地图的实现
    ArcGIS for Android地图控件的5大常见操作
    从程序员到项目经理(16):原来一切问题都是可以解决的
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3144891.html
Copyright © 2011-2022 走看看