文章詳情頁(yè)
Oracle起動(dòng)庫(kù)時(shí)1102報(bào)錯(cuò)處理
瀏覽:4日期:2023-11-18 09:57:09
一、提出問(wèn)題實(shí)際過(guò)程中有時(shí)我們會(huì)碰到這樣的問(wèn)題,當(dāng)你用startup試圖啟動(dòng)數(shù)據(jù)庫(kù)時(shí)會(huì)碰到ORA-01102的報(bào)錯(cuò)。我們可以在Unix下切換到Oracle的用戶,執(zhí)行一下oerr ora 1102便會(huì)看到有關(guān)1102的簡(jiǎn)短的描述,如下: rp2$[/home/ora2]oerr ora 110201102, 00000, 'cannot mount database in EXCLUSIVE mode'// *Cause:; Some other instance has the database mounted exclusive or shared.// *Action: Shutdown other instance or mount in a compatible mode看了這個(gè)1102的簡(jiǎn)短的解釋你一定有些迷惑,因?yàn)樗幸恍┑恼`導(dǎo)性。如下我便來(lái)分析一下問(wèn)題產(chǎn)生的原因,并給出解決的辦法。二、分析原因當(dāng)你啟動(dòng)數(shù)據(jù)庫(kù)碰到1102報(bào)錯(cuò)時(shí),之前的數(shù)據(jù)庫(kù)的down操作一般都不是正常完成的,或由于一些異常使Oracle在操作系統(tǒng)中殘留一些內(nèi)存結(jié)構(gòu),Pmon等一幾個(gè)進(jìn)程依然存在等原因使Oracle誤認(rèn)為Instance依然在運(yùn)行著,所以庫(kù)就沒(méi)有啟動(dòng),具體說(shuō)來(lái)大體原因有如下幾個(gè):1、pmon、smon、lwgw及dbwr這些后臺(tái)進(jìn)程依然存在著2、Oracle開(kāi)辟的共享內(nèi)存沒(méi)有釋放掉3、'lk<sid>' and 'sgadef<sid>.dbf'這兩個(gè)用于鎖內(nèi)存的文件存在著。三、解決問(wèn)題知道了原因,解決起來(lái)就簡(jiǎn)單多了,辦法如下:1、看一下'lk<sid>' and 'sgadef<sid>.dbf'這兩個(gè)文件是不是存在著,假如存在將其刪掉。oracle$cd $ORACLE_HOME/dbsoracle$ls -l sgadef<sid>.dbf假如存在刪掉它oracle$rm sgadef<sid>.dbforacle$ls -l lk<sid>假如存在刪掉它oracle$rm lk<sid>2、看是不是有后臺(tái)進(jìn)程存在了oracle$ps -ef grep ora_ grep $ORACLE_SID假如有pmon這些后臺(tái)進(jìn)程的殘留,kill -9掉它oracle$kill -9 pid3、看一下oracle的共享內(nèi)存段及信號(hào)集(semaphores)是不是還存在著1)清共享內(nèi)存段oracle$ipcs -m--顯示一下,看owner是Oracle用戶的oracle$ipcrm -m <Shared_Memory_ID>2)清信號(hào)集oracle$ipcs -s--顯示一下,看owner是Oracle用戶的oracle$ipcrm -s <Semaphore_ID>四、應(yīng)該沒(méi)問(wèn)題了,再試一下吧^-^
標(biāo)簽:
Oracle
數(shù)據(jù)庫(kù)
排行榜
