Oracle shutdown的時(shí)候突然斷電,導(dǎo)致使用sql/plus啟動(dòng)時(shí)無(wú)法連接到數(shù)據(jù)庫(kù),具體描述為:
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;
表明:沒(méi)有啟動(dòng)數(shù)據(jù)庫(kù)。 后來(lái)查閱相關(guān)資料:得出解決方法:
到dos 提示符 鍵入:
c:\> sqlplus /nolog
顯示 sql/plus: Realease9.0.2……..all rights reserved
sql> connect /as sysdba
顯示已連接至空閑例程
sql> startup force
顯示:已啟動(dòng)。數(shù)據(jù)庫(kù)已正常啟動(dòng)。
也可以先將 windows services中將oraclehome92 service 停止,再啟動(dòng)oracle enterprise manager console,選擇獨(dú)立啟動(dòng),選擇數(shù)據(jù)庫(kù),點(diǎn)擊orcl(全局?jǐn)?shù)據(jù)庫(kù)名),彈出對(duì)話框,輸入用戶名system密碼password,連接身份:sysdba,選擇例程,配置,在一般信息標(biāo)簽下將例程狀態(tài)先改為關(guān)閉,在打開(kāi)。如果提示oraclehome92 service 停止,則將這個(gè)服務(wù)啟動(dòng)起來(lái),再啟動(dòng)數(shù)據(jù)庫(kù),也可解決問(wèn)題。
附:startup force 強(qiáng)制啟動(dòng)一個(gè)沒(méi)有關(guān)閉或沒(méi)能正常啟動(dòng)的數(shù)據(jù)庫(kù);過(guò)程:先關(guān)閉實(shí)例,再啟動(dòng)。
Startup restrict 以限制模式啟動(dòng)數(shù)據(jù)庫(kù),從而限制訪問(wèn)數(shù)據(jù)庫(kù),只有具有 restricted session 權(quán)限的用戶能與數(shù)據(jù)庫(kù)連接
alter system [enable/disable] restricted session 在數(shù)據(jù)庫(kù)打開(kāi)后,該語(yǔ)句啟動(dòng)或關(guān)閉訪問(wèn)限制功能。如果相對(duì)主結(jié)構(gòu)做更改或想得到導(dǎo)出一致性,應(yīng)將數(shù)據(jù)庫(kù)設(shè)置為限制模式。 只有具有alter system權(quán)限,才可以用alter system [enable/disable] restricted session 命令改變數(shù)據(jù)庫(kù)的可用性。
當(dāng)一個(gè)實(shí)例以nomount狀態(tài)啟動(dòng)時(shí),只能訪問(wèn)sga讀取數(shù)據(jù)的視圖。關(guān)于 v$thread,v$controlftle等信息從sga 讀取數(shù)據(jù)的詞典視圖。當(dāng)數(shù)據(jù)庫(kù)被裝配時(shí),關(guān)于 v$thread,v$controlftle等信息從控制文件中被讀出。
分析,當(dāng)數(shù)據(jù)庫(kù)異常關(guān)閉時(shí),shutdown在程序里沒(méi)有退出,因此啟動(dòng)實(shí)例時(shí)檢測(cè)到shutdown,則系統(tǒng)報(bào)錯(cuò)。因此需要先關(guān)閉數(shù)據(jù)庫(kù),再啟動(dòng)數(shù)據(jù)庫(kù)。