解决方案 »

  1.   

    错误原因是,数据文件头部信息中的checkpoint比控制文件中的checkpoint更新。应该是经历了一次非正常关闭数据库吧对控制文件做个备份,然后重建控制文件:
    Alter database backup controlfile to trace;
    会生成一个trace文件,里面有控制文件的创建脚本重新打开数据库到nomount状态,执行脚本创建控制文件;恢复数据库到一致状态: recover database;打开数据库 alter database open;
      

  2.   


    第一次执行执行成功,但是我查找不到udump文件,没有看到新建的trace文件;
    断开连接,再次连接、执行,开始报错
    SQL> Alter database backup controlfile to trace;
    Alter database backup controlfile to trace
    *
    ERROR at line 1:
    ORA-01034: ORACLE not available
    Process ID: 0
    Session ID: 0 Serial number: 0
      

  3.   

    根据下面的sql语句查看生成的trace文件位置
    select d.value || b.bias || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
           p.spid || '.trc' trace_file_name
      from (select p.spid
              from v$mystat m, v$session s, v$process p
             where m.statistic# = 1
               and s.sid = m.sid
               and p.addr = s.paddr) p,
           (select t.instance
              from v$thread t, v$parameter v
             where v.name = 'thread'
               and (v.value = 0 or t.thread# = to_number(v.value))) i,
           (select value from v$parameter where name = 'user_dump_dest') d,
           (select DECODE(count(BANNER), 0, '/', '\') bias
              from v$version
             where upper(banner) like '%WINDOWS%') b;
    在mounted状态来执行
    Alter database backup controlfile to trace;
      

  4.   

    这个问题,不一定要重建控制文件使用我的脚本检查数据库,然后发我html文件到([email protected]),或者qq(107644445)数据库恢复检查脚本(Oracle Database Recovery Check)
      

  5.   

     NDEX_CARDINFOR.DB 这个文件没有验证通过。可能是物理上损坏了。看样子属于一个专门放索引的表空间,退一万步讲,干掉这个表空间,重建索引,麻烦那是肯定的。 备份、备份。