Oracle數據庫啟動
Oracleshutdown的時候突然斷電,導致使用sql/plus啟動時無法連接到數據庫,具體描述為:
connectioncannotpermitted,shutinprogress.
到dos提示符鍵入:
c:\>sqlplus/nolog
顯示:
sql/plus:Realease9.0.2……..allrightsreserved
sql>connect/assysdba
顯示已連接至空閑例程
sql>startup顯示shutdowninprogress.
到sqlplus里面連接:
sys/manager@orcl92顯示信息連接成功。
Sql:select*fromtab;
顯示norowsselected;
表明:沒有啟動數據庫。后來查閱相關資料:得出解決方法:
到dos提示符鍵入:
c:\>sqlplus/nolog
顯示sql/plus:Realease9.0.2……..allrightsreserved
sql>connect/assysdba
顯示已連接至空閑例程
sql>startupforce
顯示:已啟動。數據庫已正常啟動。
也可以先將windowsservices中將oraclehome92service停止,再啟動oracleenterprisemanagerconsole,選擇獨立啟動,選擇數據庫,點擊orcl(全局數據庫名),彈出對話框,輸入用戶名system密碼password,連接身份:sysdba,選擇例程,配置,在一般信息標簽下將例程狀態先改為關閉,在打開。如果提示oraclehome92service停止,則將這個服務啟動起來,再啟動數據庫,也可解決問題。
附:startupforce強制啟動一個沒有關閉或沒能正常啟動的數據庫;過程:先關閉實例,再啟動。
Startuprestrict以限制模式啟動數據庫,從而限制訪問數據庫,只有具有restrictedsession權限的用戶能與數據庫連接
altersystem[enable/disable]restrictedsession在數據庫打開后,該語句啟動或關閉訪問限制功能。如果相對主結構做更改或想得到導出一致性,應將數據庫設置為限制模式。只有具有altersystem權限,才可以用altersystem[enable/disable]restrictedsession命令改變數據庫的可用性。
當一個實例以nomount狀態啟動時,只能訪問sga讀取數據的視圖。關于v$thread,v$controlftle等信息從sga讀取數據的詞典視圖。當數據庫被裝配時,關于v$thread,v$controlftle等信息從控制文件中被讀出。
分析,當數據庫異常關閉時,shutdown在程序里沒有退出,因此啟動實例時檢測到shutdown,則系統報錯。因此需要先關閉數據庫,再啟動數據庫。