原因:由于数据库中某一数据文件被误删,导致控制面板的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
Fixed Size
Variable Size
Database Buffers
Redo Buffers
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 9 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 9: 'D:\test\ELOA'
遗留疑问:(晕死,上次不是脱机过了,居然阴魂不散,以后可以研究一下跟随表空间左右的还有什么东东)
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
数据库已更改。
完成介质恢复。
数据库已更改。
表空间已丢弃。
已连接。
最佳解决方法:
alter database datafile 9 offline drop;
alter database open;
drop tablespace perfeval including contents and datafiles;--perfeval 表空间名
drop user perfeval cascade;