ORA-01033: ORACLE initialization or shutdown in progress

原因:由于数据库中某一数据文件被误删,导致控制面板的Oracle相关服务启动,但SQL*Plus无法连接。
解决方法:
让该数据文件脱机(正常删掉数据文件),就可以打开数据库。

首先查看:

查询数据文件联、脱机状态,可以看到已offline的表空间

SQL> select file#,name,status from v$datafile;


SQL>conn / as sysdba;
已连接。
SQL>shutdown immediate;(shutdown好像不能显示出ORA-01109: 数据库未打开这样的信息)
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
ORACLE 例程已经启动。
(其实这个错误的意思就是数据库初始化或者被关闭,当我直接关闭后,终于报出了ORA-01109: 数据库未打开的错误。)
startup force;(注意要强制启动)
Total System Global Area  118255568 bytes
Fixed Size                   282576 bytes
Variable Size              83886080 bytes
Database Buffers           33554432 bytes
Redo Buffers                 532480 bytes
数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 9 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 9: 'D:\test\ELOA'
留疑问:(晕死,上次不是脱机过了,居然阴魂不散,以后可以研究一下跟随表空间左右的还有什么东东)
 SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
 SQL> startup mount;
 SQL> alter database datafile 9 offline drop;
数据库已更改。
 SQL> recover datafile 9;(如果是其它文件可以恢复一下,此处不需要了)
完成介质恢复。
 SQL> alter database open;
数据库已更改。
 SQL>drop tablespace orcl

表空间已丢弃。
 SQL>conn / as sysdba

已连接。

最佳解决方法:

alter database datafile 9 offline drop;
alter database open;
drop tablespace perfeval including contents and datafiles;--perfeval 表空间名
drop user perfeval  cascade;

你可能感兴趣的:(ORA-01033: ORACLE initialization or shutdown in progress)