正在看的ORACLE教程是:Oracle 9i 資料庫異常關閉後的啟動。 Oracle 資料庫啟動
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,則系統報錯。因此需要先關閉資料庫,再啟動資料庫。