之前使用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 例程已经启动。
数据库装载完毕。
数据库已经打开。
问题解决!