ERROR: ORA-01033: ORACLE initialization or shutdown in progress

打开 SQLPLUS, 输入用户名和密码后 , 却总是

ORA-01033: ORACLE initialization or shutdown in progress  的错误 . 在网上搜索解决办法和大家分享 :

    1) 开始 - 运行 -cmd

     2) 命令行中输入 SQLPLUS SYS/SYS AS SYSDBA

     3) 输入 SHUTDOWN

     4) 输入 STARTUP.

在第四步的时候留意它输出的错误。我的是:

SQL> STARTUP

ORACLE  例程已经启动。

Total System Global Area  313860096 bytes

Fixed Size                  1332892 bytes

Variable Size             255854948 bytes

Database Buffers           50331648 bytes

Redo Buffers                6340608 bytes

数据库装载完毕。

ORA-00313:  无法打开日志组   1 ( 用于线程   1)  的成员

ORA-00312:  联机日志   1  线程   1: 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG'

 

很明显的是日志组出了问题。进到 D:\ORACLE\ORADATA\ORCL\  看看,原来是用优化大师时把日志文件给删掉了。

OK, 知道问题,那就来解决问题吧。上网找找。有篇文章是这样的:

ORA 00205 错误 , 即某些控制文件出现了问题 , 解决方法 . 先到 E:\oracle\product\10.1.0 \oradata\orcl 目录下 , 可以看见有 CONTROL01.CTL,   CONTROL02.CTL,   CONTROL03.CTL 三个控制文件 , 如果错误报的是 CONTROL02.CTL,   CONTROL03.CTL 有问题 , 那么就把这两个文件删掉 , 然后使用好的控制文件境象文件复制成删除的控制文件就可以了。”

可惜我的不是控制文件的问题,而是日志。最先冒出的想法是,我可不可以也另外的日志文件来替代呢?叫同学发个日志文件过来,放在 D:\ORACLE\ORADATA\ORCL\ 下,

SQL> startup

数据库装载完毕。

ORA-00305:  日志   1 ( 用于线程   1)  不一致 ;  属于另一个数据库

ORA-00312:  联机日志   1  线程   1: 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG'

结论这是不行的 .

最后的解决方法是:

SQL> shutdown immediate;

SQL> startup mount;

SQL> select * from v$log;      /*查看日志状态(见后面的资料)*/

SQL> alter database clear unarchived logfile group 2;        /* 重建日志文件 */

SQL> alter database clear unarchived logfile group 3;

SQL> alter database clear unarchived logfile group 1;

SQL> startup;

Total System Global Area  313860096 bytes

Fixed Size                  1332892 bytes

Variable Size             255854948 bytes

Database Buffers           50331648 bytes

Redo Buffers                6340608 bytes

数据库装载完毕。

数据库已经打开。

SQL> conn system

输入口令 :

已连接。

SQL>

 到这里,问题解决了!


后话,恢复日志文件的顺序要注意。

附加些资料:

日志文件组的状态

  current:  当前正在使用的工作组

  inactive:  非活动组

  active :  归档还没有完成

  unused :  还没有使用 , 一般新建的工组组都是这个状态

active,current 状态下的工作组都不能删除 , 要日志切换后才可以


SQL> shutdown immediate;  (为什么不是 shutdown  呢?看下面得链接吧)

http://download.oracle.com/docs/cd/B10501_01/server.920/a96521/start.htm#6370

 

SQL> startup mount;

1 STARTUP   NOMOUNT    
        NONOUNT
选项仅仅创建一个 Oracle 实例 , 当实例打开后,系统将显示一个 SGA 内存结构和大小的列表 ;  
  2
STARTUP   MOUNT  
        
该命令创建实例并且安装数据库,但没有打开数据库 , 在这种打开方式下 , 除了可以看到 SGA 系统列表以外,系统还会给出 " 数据库装载完毕 " 的提示 ;  
  3
STARTUP    
    
 该命令完成创建实例、安装实例和打开数据库的所有三个步骤 , 这时系统除了可以看到前面 Startup   Mount 方式下的所有提示外,还会给出一个 " 数据库已经打开 " 的提示 , 此时,数据库系统处于正常工作状态,可以接受用户请求。


你可能感兴趣的:(数据结构,oracle,sql,SQL Server,活动)