Oracle起動庫時1102報錯處理
一、提出問題
實際過程中有時我們會遇到這樣的問題,當你用startup試圖啟動資料庫時會遇到ORA-01102的報錯。我們可以在Unix下切換到Oracle的使用者,執行一下oerr ora 1102便會看到有關1102的簡短的描述,如下:
rp2$[/home/ora2]oerr ora 1102
01102, 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
看了這個1102的簡短的解釋你一定有些迷惑,因為它有一些的誤導性。如下我便來分析一下問題產生的原因,並給出解決的辦法。
二、分析原因
當你啟動資料庫遇到1102報錯時,之前的資料庫的down操作一般都不是正常完成的,或由於一些異常使Oracle在作業系統中殘留一些記憶體結構,Pmon等一幾個程式依然存在等原因使Oracle誤認為Instance依然在執行著,所以庫就沒有啟動,具體說來大體原因有如下幾個:
1、pmon、smon、lwgw及dbwr這些後臺程式依然存在著
2、Oracle開闢的共享記憶體沒有釋放掉
3、"lk" and "sgadef.dbf"這兩個用於鎖記憶體的檔案存在著。
三、解決問題
知道了原因,解決起來就簡單多了,辦法如下:
1、看一下"lk" and "sgadef.dbf"這兩個檔案是不是存在著,如果存在將其刪掉。
oracle$cd $ORACLE_HOME/dbs
oracle$ls -l sgadef.dbf
如果存在刪掉它
oracle$rm sgadef.dbf
oracle$ls -l lk
如果存在刪掉它
oracle$rm lk
2、看是不是有後臺程式存在了
oracle$ps -ef | grep ora_ | grep $ORACLE_SID
如果有pmon這些後臺程式的殘留,kill -9掉它
oracle$kill -9 pid
3、看一下oracle的共享記憶體段及訊號集(semaphores)是不是還存在著
1)清共享記憶體段
oracle$ipcs -m --顯示一下,看owner是Oracle使用者的
oracle$ipcrm -m
2)清訊號集
oracle$ipcs -s --顯示一下,看owner是Oracle使用者的
oracle$ipcrm -s
四、應該沒問題了,再試一下吧^-^
實際過程中有時我們會遇到這樣的問題,當你用startup試圖啟動資料庫時會遇到ORA-01102的報錯。我們可以在Unix下切換到Oracle的使用者,執行一下oerr ora 1102便會看到有關1102的簡短的描述,如下:
rp2$[/home/ora2]oerr ora 1102
01102, 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
看了這個1102的簡短的解釋你一定有些迷惑,因為它有一些的誤導性。如下我便來分析一下問題產生的原因,並給出解決的辦法。
二、分析原因
當你啟動資料庫遇到1102報錯時,之前的資料庫的down操作一般都不是正常完成的,或由於一些異常使Oracle在作業系統中殘留一些記憶體結構,Pmon等一幾個程式依然存在等原因使Oracle誤認為Instance依然在執行著,所以庫就沒有啟動,具體說來大體原因有如下幾個:
1、pmon、smon、lwgw及dbwr這些後臺程式依然存在著
2、Oracle開闢的共享記憶體沒有釋放掉
3、"lk
三、解決問題
知道了原因,解決起來就簡單多了,辦法如下:
1、看一下"lk
oracle$cd $ORACLE_HOME/dbs
oracle$ls -l sgadef
如果存在刪掉它
oracle$rm sgadef
oracle$ls -l lk
如果存在刪掉它
oracle$rm lk
2、看是不是有後臺程式存在了
oracle$ps -ef | grep ora_ | grep $ORACLE_SID
如果有pmon這些後臺程式的殘留,kill -9掉它
oracle$kill -9 pid
3、看一下oracle的共享記憶體段及訊號集(semaphores)是不是還存在著
1)清共享記憶體段
oracle$ipcs -m --顯示一下,看owner是Oracle使用者的
oracle$ipcrm -m
2)清訊號集
oracle$ipcs -s --顯示一下,看owner是Oracle使用者的
oracle$ipcrm -s
四、應該沒問題了,再試一下吧^-^
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8334342/viewspace-567478/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 處理動態連結庫報錯的問題
- Mysql自動處理同步報錯MySql
- RAT(Oracle Real Application Testing)時ORA 600報錯處理OracleAPP
- EBS服務啟動報錯基本處理
- 【故障處理】 DBCA建庫報錯CRS-2566
- Oracle 12c ORA-29548 報錯處理Oracle
- Extjs報錯處理JS
- DG報錯的處理
- errpt報錯處理
- COM+元件啟動報錯問題處理元件
- Oracle 11g R2 DG 備庫啟動報錯,需要恢復日誌處理措施Oracle
- ORACLE 處理時間Oracle
- oracle ORA-01940 報錯的處理方法Oracle
- oracle 9.2.0.7 + hp_unix exp匯出報錯處理Oracle
- 處理mysql無法啟動且啟動時服務沒報錯的異常情況MySql
- Gulp壓縮報錯處理
- rails gem報錯的處理AI
- Javascript程式碼報錯處理JavaScript
- 各種報錯處理方法
- 在使用 zabbix 4 時, orabbix 會報錯的處理方法
- SQLite.dll在xp中部署時的報錯處理SQLite
- oracle listener 監聽啟動不起來處理案例一則Oracle
- 搭建dataguard時,錯誤處理
- [Oracle報錯處理]ORA-00031: session marked for killOracleSession
- 【ORACLE】ORA-27102: out of memory報錯的處理Oracle
- oracle 10G rac 執行dbca 報錯處理方法Oracle 10g
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- Oracle錯誤處理思路(一)Oracle
- 啟動oracle資料庫的時候報ORA-00205錯誤:Oracle資料庫
- 建立data guard備庫的instance時,報ORA-09925錯誤的處理
- Too many open files報錯處理
- yum groupinstall報錯,處理方法
- ORA-02429 報錯處理
- mysql複製報錯案例處理MySql
- Oracle啟動報錯(ORA-01990,ORA-27037)處理方法Oracle
- 建立data guard備庫的instance時,報ORA-09925錯誤的處理誤
- 加大memory_max_target後,資料庫啟動報ora-00845錯誤處理資料庫