原因:由於Oracle資料庫中某一資料檔案被誤刪,導致控制台的Oracle相關服務啟動,但SQL*Plus無法串連。
解決方案:
讓該資料檔案離線(正常刪掉資料檔案),就可以開啟資料庫。
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
已串連。