如题,今天遇到的问题。一个小客户,运行环境:Oracle 8i单机数据库,windows XP SP3系统。数据库连接时报 ORA-01033: ORACLE initialization or shutdown in progress 的错误。

ORA-01033 本身没什么意义。sqlplus system/manager@orcl 无法登陆。随后使用命令如下:

>sqlplus "/as sysdba"

>shutdown immediate;

>startup;

无法启动,报错:ORA-00214: control file 控制文件版本不一致

根据错误代码,百度解决方法。一路各种命令运行,又先后遇到了:

ORA-01113,ORA-01110;

ORA-01139;

ORA-01033;

ORA-01079;

ORA-00940;

ORA-01192;

ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项;

ora-01122, ora-01110, ora-01207 一组我比较熟悉的错误,可以通过恢复控制文件来解决。只是这次恢复控制文件直接报错。最后在resetlogs模式下(把重新生成控制文件命令里的noresetlogs改为resetlogs),控制文件恢复成功了。然后又在初始化配置文件中(init.ora)加上:_allow_resetlogs_corruption=true(Oracle隐藏参数,允许以resetlogs模式打开数据库),然后

>recover database until cancel;
>cancel
>alter database open resetlogs; 数据库终于成功打开。

赶紧把数据exp出来。然后删掉orcl数据库,重建orcl数据库,再把数据Imp进去。问题解决。

由于当时有点着急,没有详细记录下遇到的所有错误信息,总之是遇到一个问题就百度解决方法。

总结一下:这次数据库崩溃造成了控制文件、日志文件、system表空间文件等不一致,问题比较严重。