Oracle shutdown的時候突然斷電,導致使用sql/plus啟動時無法連接到數據庫,具體描述為:
connection can not permitted, shut in progress.
到dos 提示符 鍵入:
c:\> sqlplus /nolog
顯示:
sql/plus: Realease9.0.2……..all rights reserved
sql> connect /as sysdba
顯示已連接至空閒例程
sql>startup 顯示shutdown in progress.
到sqlplus 裡面連接:
sys/manager@orcl92 顯示信息連接成功。
Sql: select * from tab;
顯示norows selected;
表明:沒有啟動數據庫。
查閱資料後得出的解決辦法:
到dos 提示符 鍵入:
c:\> sqlplus /nolog
顯示 sql/plus: Realease9.0.2……..all rights reserved
sql> connect /as sysdba
顯示已連接至空閒例程
sql> startup force
顯示:已啟動。數據庫已正常啟動。
也可以先將 windows services中將oraclehome92 service 停止,再啟動oracle enterprise manager console,選擇獨立啟動,選擇數據庫,點擊orcl(全局數據庫名),彈出對話框,輸入用戶名system密碼password,連接身份: sysdba,選擇例程,配置,在一般信息標簽下將例程狀態先改為關閉,在打開。如果提示oraclehome92 service 停止,則將這個服務啟動起來,再啟動數據庫,也可解決問題。 startup force 強制啟動一個沒有關閉或沒能正常啟動的數據庫;過程:先關閉實例,再啟動。 Startup restrict 以限制模式啟動數據庫,從而限制訪問數據庫,只有具有 restricted session 權限的用戶能與數據庫連接。 alter system [enable/disable] restricted session 在數據庫打開後,該語句啟動或關閉訪問限制功能。如果相對主結構做更改或想得到導出一致性,應將數據庫設置為限制模式。 只有具有alter system權限,才可以用alter system [enable/disable] restricted session 命令改變數據庫的可用性。
當一個實例以nomount狀態啟動時,只能訪問sga讀取數據的視圖。關於v$thread,v$controlftle等信息從sga 讀取數據的詞典視圖。當數據庫被裝配時,關於 v$thread,v$controlftle等信息從控制文件中被讀出。分析,當數據庫異常關閉時,shutdown在程序裡沒有退出,因此啟動實例時檢測到shutdown,則系統報錯。因此需要先關閉數據庫,再啟動數據庫。