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

首頁 > 數據庫 > Oracle > 正文

Oracle起動庫時1102報錯處理

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

一、提出問題

 

實際過程中有時我們會遇到這樣的問題,當你用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>

 

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

                      
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹤壁市| 丽江市| 牟定县| 乌鲁木齐县| 襄垣县| 和田市| 天台县| 大邑县| 万荣县| 九台市| 尼木县| 诸城市| 承德市| 崇义县| 宝兴县| 灵武市| 罗城| 信丰县| 泊头市| 九寨沟县| 双辽市| 北流市| 祁门县| 长治县| 临桂县| 阜康市| 宁河县| 即墨市| 台中市| 沂水县| 宣武区| 东港市| 博兴县| 眉山市| 周至县| 囊谦县| 德庆县| 前郭尔| 南安市| 福海县| 金溪县|