国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle起動庫時1102報錯處理

2024-08-29 13:49:07
字體:
來源:轉載
供稿:網友

  
一、提出問題

 

實際過程中有時我們會碰到這樣的問題,當你用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<sid>" and "sgadef<sid>.dbf"這兩個用于鎖內存的文件存在著。

 

三、解決問題

 

知道了原因,解決起來就簡單多了,辦法如下:

 

1、看一下"lk<sid>" and "sgadef<sid>.dbf"這兩個文件是不是存在著,假如存在將其刪掉。

oracle$cd $ORACLE_HOME/dbs

 

oracle$ls -l sgadef<sid>.dbf

假如存在刪掉它

oracle$rm sgadef<sid>.dbf

 

oracle$ls -l lk<sid>

假如存在刪掉它

oracle$rm lk<sid>

 

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 <Shared_Memory_ID>

 

2)清信號集

 

oracle$ipcs -s   --顯示一下,看owner是Oracle用戶的

oracle$ipcrm -s <Semaphore_ID>

 

四、應該沒問題了,再試一下吧^-^

                      

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新干县| 县级市| 哈尔滨市| 南昌县| 二手房| 保亭| 贵南县| 海阳市| 永州市| 浦北县| 新龙县| 赤水市| 阳春市| 龙泉市| 新沂市| 巴彦县| 西和县| 阳东县| 九龙城区| 昌邑市| 四川省| 普兰店市| 郧西县| 浦北县| 大兴区| 新沂市| 尼木县| 怀来县| 大余县| 晋州市| 礼泉县| 屏山县| 京山县| 商丘市| 霍城县| 宝山区| 偏关县| 洪洞县| 体育| 阿拉善左旗| 华坪县|