天天看点

oracle ora-01033:oracle initialization or shutdown in progress问题

    之前使用oracle的时候出现过两次这种错误,后来发现是由于某些操作误删了日志文件导致的。所以这里提供可以解决的办法:库是oracle 9i,具体就是90的。

现象:Plsqldeveloper无法连接,显示以下错误: ORA-01033: ORACLE initialization or shutdown in progress ,Enterprise Manager Console中也是同样的错误。

原因:应该是Oracle在启动后,用户登录时是要将方案中原有配置信息装载进入,装载过程中遇到原有文件指定的位置上没有找到,所以就报出错误。

这里解决的方法是重做日志:

1

先在windows下运行cmd,进入DOS环境

2

以DBA用户登录,具体命令是

sqlplus /NOLOG

SQL>connect sys/change_on_install as sysdba

提示:已成功

3

SQL>shutdown normal

提示:数据库已经关闭

已经卸载数据库

ORACLE 例程已经关闭

SQL>startup mount

提示:ORACLE例程已经启动

数据库装载完毕

4

SQL>select * from v$log;

查看系统日志,看看与oracle/oradata/oradb的日志是否匹配,发现目录下丢失某些日志文件

5

创建新的日志组

alter database add logfile group 4 ('C:/ORACLE/ORADATA/ORADB/REDO04.LOG') size 1024k;

alter database add logfile group 5 ('C:/ORACLE/ORADATA/ORADB/REDO05.LOG') size 1024k;

6

切换当前日志到新的日志

alter system switch logfile;

alter system switch logfile;

7

删除旧的日志组

alter database drop logfile group 1;

alter database drop logfile group 2;

alter database drop logfile group 3; 8 删除系统下的原日志文件 oracle/oradata/oradb 9 重建日志组 alter database add logfile group 1 ('C:/ORACLE/ORADATA/ORADB/REDO01.LOG') size 10M;

alter database add logfile group 2 ('C:/ORACLE/ORADATA/ORADB/REDO02.LOG') size 10M;

alter database add logfile group 3 ('C:/ORACLE/ORADATA/ORADB/REDO03.LOG') size 10M; 10

切换日志组 alter system switch logfile;

alter system switch logfile;

alter system switch logfile; 11 删除中间过渡用的日志组

alter database drop logfile group 4;

alter database drop logfile group 5; 12 到操作系统下删除原日志中的文件 oracle/oradata/oradb 13 备份当前的最新的控制文件

SQL>connect internal

SQL> alter database backup controlfile to trace resetlogs 如果为安全考虑每个group可以多加几个文件 14 SQL>shutdown;

已经卸载数据库。

ORACLE 例程已经关闭。

SQL>startup;

ORACLE 例程已经启动。

数据库装载完毕。

数据库已经打开。

问题解决!