今天測試用的ORACLE服務器出現卡頓情況,於是准備重啟一下,在運行shutdown指令關閉數據庫的時候意外斷開連接,后面想再次進入ORACLE服務器啟動時便遇見如下報錯:
- 使用
sqlplus /nolog進入SQL Plus后,想連接數據庫conn username/password as sysdba時,會報Connected to an idle instance.錯誤。 - 在SQL Plus界面,想直接
startup啟動數據庫時,會報ORA-01012: not logged on錯誤。
通過查閱資料,判斷報錯原因是在關閉數據庫意外退出后,ORACLE一直處於鎖定狀態,不再允許其他操作。
個人的解決方法是:
- 先關閉ORACLE進程:
ps -ef|grep ora_dbw0_$ORACLE_SID //找到ORACLE進程
kill -9 PID //通過找到的進程PID號kill掉該進程
- 然后重啟ORACLE:
sqlplus /nolog //進入SQL Plus
startup //啟動ORACLE
最后附上關閉ORACLE的命令說明,以免造成錯誤的關閉操作:
- shutdown normal(所有連接斷開后關閉數據庫)
- shutdown transactional(所有事務結束后主動斷開連接,並關閉數據庫)
- shutdown immediate(主動斷開連接和事務)
- shutdown abort(立即關閉數據庫,由於該操作不會同步數據,清空回滾段,不觸發檢查點,所以比較危險,每次啟動需要實例恢復)
