打开数据库时候提示ora-01092错误,下面是日志,哪位高手帮忙看看,急等
alter database openThu Aug 11 09:11:16 2011
Beginning crash recovery of 1 threads
Thu Aug 11 09:11:16 2011
Started redo scan
Thu Aug 11 09:11:16 2011
Completed redo scan
 0 redo blocks read, 0 data blocks need recovery
Thu Aug 11 09:11:16 2011
Started recovery at
 Thread 1: logseq 120, block 3, scn 0.15105546
Thu Aug 11 09:11:16 2011
Recovery of Online Redo Log: Thread 1 Group 2 Seq 120 Reading mem 0
  Mem# 0 errs 0: C:\ORACLE\ORADATA\HDY9I\REDO02.LOG
Thu Aug 11 09:11:16 2011
Completed redo application
Thu Aug 11 09:11:16 2011
Ended recovery at
 Thread 1: logseq 120, block 3, scn 0.15125547
 0 data blocks read, 0 data blocks written, 0 redo blocks read
Crash recovery completed successfully
Thu Aug 11 09:11:16 2011
Thread 1 advanced to log sequence 121
Thread 1 opened at log sequence 121
  Current log# 3 seq# 121 mem# 0: C:\ORACLE\ORADATA\HDY9I\REDO03.LOG
Successful open of redo thread 1
Thu Aug 11 09:11:17 2011
SMON: enabling cache recovery
Thu Aug 11 09:11:17 2011
Errors in file c:\oracle\admin\hdy9i\udump\hdy9i_ora_5476.trc:
ORA-01578: ORACLE 数据块损坏(文件号2,块号9)
ORA-01110: 数据文件 2: 'C:\ORACLE\ORADATA\HDY9I\UNDOTBS01.DBF'Thu Aug 11 09:11:17 2011
Error 1578 happened during db open, shutting down database
USER: terminating instance due to error 1578
Thu Aug 11 09:11:18 2011
Errors in file c:\oracle\admin\hdy9i\bdump\hdy9i_smon_5480.trc:
ORA-01578: ORACLE data block corrupted (file # , block # )Thu Aug 11 09:11:18 2011
Errors in file c:\oracle\admin\hdy9i\bdump\hdy9i_pmon_5472.trc:
ORA-01578: ORACLE data block corrupted (file # , block # )Thu Aug 11 09:11:19 2011
Errors in file c:\oracle\admin\hdy9i\bdump\hdy9i_dbw0_5468.trc:
ORA-01578: ORACLE data block corrupted (file # , block # )Thu Aug 11 09:11:19 2011
Errors in file c:\oracle\admin\hdy9i\bdump\hdy9i_reco_4188.trc:
ORA-01578: ORACLE data block corrupted (file # , block # )Thu Aug 11 09:11:19 2011
Errors in file c:\oracle\admin\hdy9i\bdump\hdy9i_lgwr_4144.trc:
ORA-01578: ORACLE data block corrupted (file # , block # )Thu Aug 11 09:11:19 2011
Errors in file c:\oracle\admin\hdy9i\bdump\hdy9i_ckpt_1016.trc:
ORA-01578: ORACLE data block corrupted (file # , block # )Instance terminated by USER, pid = 5476
ORA-1092 signalled during: alter database open
...

解决方案 »

  1.   

    Errors in file c:\oracle\admin\hdy9i\udump\hdy9i_ora_5476.trc:
    ORA-01578: ORACLE 数据块损坏(文件号2,块号9)
    ORA-01110: 数据文件 2: 'C:\ORACLE\ORADATA\HDY9I\UNDOTBS01.DBF'根据这个结果,
    1.打开TRACE文件,看看是否有其它错误
    2.重建UNDO表空间
      

  2.   

    应如何解决呢,下面是hdy9i_ora_5476.trc的日志:
    Dump file c:\oracle\admin\hdy9i\udump\hdy9i_ora_5476.trc
    Thu Aug 11 09:11:16 2011
    ORACLE V9.2.0.8.0 - Production vsnsta=0
    vsnsql=12 vsnxtr=3
    Windows 2000 Version 5.2 Service Pack 2, CPU type 586
    Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.8.0 - Production
    Windows 2000 Version 5.2 Service Pack 2, CPU type 586
    Instance name: hdy9iRedo thread mounted by this instance: 1Oracle process number: 13Windows thread id: 5476, image: ORACLE.EXE
    *** SESSION ID:(9.3) 2011-08-11 09:11:16.281
    Thread checkpoint rba:0x000078.00000002.0010 scn:0x0000.00e67e09
    Cache low rba is 0xffffffff.ffffffff.ffff
    Use incremental checkpoint on-disk rba
    Thread 1 recovery from rba:0x000078.00000003.0000 scn:0x0000.00e67e0a
    ----- Recovery Hash Table Statistics ---------
    Hash table buckets = 32768
    Longest hash chain = 0
    Average hash chain = 0/0 = 0.0
    Max compares per lookup = 0
    Avg compares per lookup = 0/0 = 0.0
    ----------------------------------------------
    *** 2011-08-11 09:11:16.703
    KCRA: start recovery claims for 0 data blocks
    *** 2011-08-11 09:11:16.703
    KCRA: buffers claimed = 0/0, eliminated = 0
    *** 2011-08-11 09:11:16.750
    Recovery of Online Redo Log: Thread 1 Group 2 Seq 120 Reading mem 0
    ----- Recovery Hash Table Statistics ---------
    Hash table buckets = 32768
    Longest hash chain = 0
    Average hash chain = 0/0 = 0.0
    Max compares per lookup = 0
    Avg compares per lookup = 0/0 = 0.0
    ----------------------------------------------
    ORA-01578: ORACLE 数据块损坏(文件号2,块号9)
    ORA-01110: 数据文件 2: 'C:\ORACLE\ORADATA\HDY9I\UNDOTBS01.DBF'
      

  3.   

    重建UNDO表空间及数据文件
      

  4.   


    --启动到mount状态
    startup mount;
    --查询表空间信息
    [SYS@myorcl] SQL>select * from v$tablespace;       TS# NAME                           INC BIG FLA ENC
    ---------- ------------------------------ --- --- --- ---
             0 SYSTEM                         YES NO  YES
             1 UNDOTBS1                       YES NO  YES
             2 SYSAUX                         YES NO  YES
             4 USERS                          YES NO  YES
             3 TEMP                           NO  NO  YES
             6 EXAMPLE                        YES NO  YES--新建一个undo表空间
    create undo tablespace undotbs3 datafile '路径\xxxx.dbf' size 100m;
    --修改系统默认undo表空间
    alter system set undo_tablespace=undotbs3;
    --删除原来的undo表空间和数据文件
    drop tablespace UNDOTBS1 include datafile;
    --打开数据库
    alter database open;
      

  5.   

    提示数据未打开
    C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 9.2.0.8.0 - Production on 星期四 8月 11 10:11:56 2011Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.SQL> conn sys/lzadmin@hdy9i as sysdba
    已连接。
    SQL> shutdown abort
    ORACLE 例程已经关闭。
    SQL> startup mount
    ORACLE 例程已经启动。Total System Global Area  135339604 bytes
    Fixed Size                   454228 bytes
    Variable Size             109051904 bytes
    Database Buffers           25165824 bytes
    Redo Buffers                 667648 bytes
    数据库装载完毕。
    SQL> create undo tablespace undotbs3 datafile 'C:\oracle\oradata\hdy9i\undotbs2.
    dbf' size 100m;
    create undo tablespace undotbs3 datafile 'C:\oracle\oradata\hdy9i\undotbs2.dbf'
    size 100m
    *
    ERROR 位于第 1 行:
    ORA-01109: 数据库未打开
      

  6.   

    http://www.erp100.com/thread-30934-1-1.html
      

  7.   


    首先执行 alter tablesapce UNDOTBS1 offline...
    然后再打开数据库 alter database open
    最后重建UNDO表空间