我本想访问用户vm_user的一些表,但发现用户vm_user突然连不上数据库,以下是在命令行下的输出:C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on 星期三 8月 9 21:53:40 2006Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.SQL>
SQL> connect vm_user/qqq;
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
SQL> connect / as sysdba;
已连接。
SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'C:\ORACLE\ORADATA\ORCL\REDO01.LOG'
SQL>C:\Documents and Settings\Administrator>dir C:\oracle\oradata\ORCL
 驱动器 C 中的卷没有标签。
 卷的序列号是 304F-9C77 C:\oracle\oradata\ORCL 的目录2006-08-06  19:02    <DIR>          .
2006-08-06  19:02    <DIR>          ..
2006-08-09  21:54         2,023,424 CONTROL01.CTL
2006-08-09  21:54         2,023,424 CONTROL02.CTL
2006-08-09  21:54         2,023,424 CONTROL03.CTL
2006-08-09  20:46        20,979,712 CWMLITE01.DBF
2006-08-09  20:46        20,979,712 DRSYS01.DBF
2006-08-09  20:46       156,639,232 EXAMPLE01.DBF
2006-08-09  20:46        26,222,592 INDX01.DBF
2006-08-09  20:46        20,979,712 ODM01.DBF
2006-08-09  20:46       104,858,112 REDO02.LOG
2006-08-09  20:46       419,438,592 SYSTEM01.DBF
2006-06-24  16:09        41,951,232 TEMP01.DBF
2006-08-09  20:46        10,493,952 TOOLS01.DBF
2006-08-09  20:46       209,723,392 UNDOTBS01.DBF
2006-08-09  20:46        26,222,592 USERS01.DBF
2006-08-09  20:46        39,985,152 XDB01.DBF
              15 个文件  1,104,544,256 字节
               2 个目录 11,991,695,360 可用字节
可见这是由于C:\ORACLE\ORADATA\ORCL\REDO01.LOG被误删造成的,那么有什么办法可以解决这个问题呢(希望保留用户vm_uer的所有表及其中的数据)?恳请大侠们指点。

解决方案 »

  1.   

    首先,执行下面的语句看看group1是不是current日志组
    select group#,sequence#,archived,status from v$log;如果被删除的日志不是当前日志组的成员,比较简单
    alter database clear logfile group 1;
    如果你的库是非归档的,或许要用下面的语句
    alter database clear unarchived logfile group 1;如果是当前日志组损坏,但是数据库是正常关闭的,上面的办法也可以使用如果日志组中有活动的事务,那么可能需要利用备份来恢复了,否则只有通过隐含参数强制打开库(不推荐,如果是生产库,最好请求技术支持)
      

  2.   

    我用
    alter database clear logfile group 1;
    alter database clear logfile group 3;
    清除日志组1和3后问题解决。
    谢谢宁哥!