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

首頁 > 開發(fā) > 綜合 > 正文

ORA-03113錯(cuò)誤分析

2024-07-21 02:09:52
字體:
供稿:網(wǎng)友


fenng([email protected])

版權(quán)聲明:轉(zhuǎn)載請注明作者及出處

前言

每一個(gè)dba在進(jìn)行數(shù)據(jù)庫管理的過程中不可避免的要遇到形形色色的錯(cuò)誤(ora-xxxx).有些錯(cuò)誤由于頻繁出現(xiàn)、原因復(fù)雜而被dba們戲稱之為"經(jīng)典的錯(cuò)誤".其中ora-3113 "end of fileon communication channel" 就是這樣的一個(gè).

我們可以簡單的把這個(gè)錯(cuò)誤理解為oracle客戶端進(jìn)程和數(shù)據(jù)庫后臺(tái)進(jìn)程連接中斷.不過,導(dǎo)致這個(gè)錯(cuò)誤的原因?qū)嶋H上有很多種,對數(shù)據(jù)庫設(shè)置不當(dāng)、任何能導(dǎo)致數(shù)據(jù)庫后臺(tái)進(jìn)程崩潰的行為都可能產(chǎn)生這個(gè)錯(cuò)誤.這個(gè)錯(cuò)誤的出現(xiàn)還經(jīng)常伴隨著其它錯(cuò)誤,比如說:ora-1034 oracle not available.

此外,該錯(cuò)誤出現(xiàn)的場景復(fù)雜,可能出現(xiàn)在:
啟動(dòng)的oracle的時(shí)侯; 試圖創(chuàng)建數(shù)據(jù)庫的時(shí)侯; 試圖對數(shù)據(jù)庫進(jìn)行連接的時(shí)侯; 在客戶端正在運(yùn)行sql/pl/sql的時(shí)侯; 備份/恢復(fù)數(shù)據(jù)庫的時(shí)侯; 其它一些情況下......

在論壇上也時(shí)常可以看到初級dba對這個(gè)問題的求救. 在這里簡單的對該問題進(jìn)行一下整理.不當(dāng)之處,請多指教!


錯(cuò)誤原因種種

根據(jù)網(wǎng)絡(luò)上大家反映的情況來看,錯(cuò)誤原因大約有這些:
unix核心參數(shù)設(shè)置不當(dāng) oracle執(zhí)行文件權(quán)限不正確/環(huán)境變量問題 客戶端通信不能正確處理 數(shù)據(jù)庫服務(wù)器崩潰/操作系統(tǒng)崩潰/進(jìn)程被kill oracle 內(nèi)部錯(cuò)誤 特定sql、pl/sql引起的錯(cuò)誤 空間不夠 防火墻的問題 其它原因
在開始解決問題之前,作如下幾件事情:

1、 回憶一下在出現(xiàn)錯(cuò)誤之前你都做了什么操作,越詳細(xì)越好;
2、 查看background_dump_dest目錄中的alertsid.log文件也是你要做的事情;
3、 google一下,在互聯(lián)網(wǎng)上有很多信息等著你去發(fā)現(xiàn),不要什么都問別人.當(dāng)然,如果你找到了一些對你非常有幫助的東西――這篇文檔就不用看了,別耽誤你的時(shí)間,呵呵.


unix核心參數(shù)設(shè)置不當(dāng)/ init參數(shù)設(shè)置不當(dāng)

如果數(shù)據(jù)庫在安裝過程中沒有設(shè)定正確的操作系統(tǒng)核心變量,可能在安裝數(shù)據(jù)庫文件的時(shí)侯
沒甚么問題,在創(chuàng)建數(shù)據(jù)庫的時(shí)侯常常會(huì)出現(xiàn)03113錯(cuò)誤.和此有關(guān)的另一個(gè)原因是init.ora
參數(shù)文件中的processes參數(shù)指定了不合理的值,啟動(dòng)數(shù)據(jù)庫導(dǎo)致錯(cuò)誤出現(xiàn)(當(dāng)然這個(gè)歸根到
底也是核心參數(shù)的問題).

這個(gè)錯(cuò)誤信息一般如下:

 ora-03113: end-of-file on communication channel
 ora-01034: oracle not available
 ora-27101: shared memory realm does not exist

 解決辦法有兩個(gè):
 1修改核心參數(shù),加大相應(yīng)核心參數(shù)的值(推薦);
 2減小init.ora參數(shù)的processes的值.

需要注意的是:
semmsl必須設(shè)定為至少要10 + 進(jìn)程數(shù)的最大值.
semmns 也依賴于每個(gè)數(shù)據(jù)庫上的進(jìn)程參數(shù)值.

-------------------------------------------------------------------------------
注: 
這個(gè)錯(cuò)誤類型只在unix平臺(tái)上出現(xiàn).在windows上如果processes的值過大,則會(huì)出現(xiàn):
ora-00068: invalid value 24200001 for parameter max_rollback_segments, must be
between 2 and 65535  /* 此時(shí)指定的參數(shù)值超過了65535 */
或者
ora-27102: out of memory /* 小于65535的一個(gè)大參數(shù)值 */
我的軟件環(huán)境:
windows 2000 version 5.0 service pack 3, cpu type 586
oracle rdbms version: 8.1.7.0.0.
-------------------------------------------------------------------------------


在特定平臺(tái)上更改核心參數(shù)可能會(huì)有差別,請參考o(jì)racle technet(http://otn.oracle.com)上的安裝文檔.對特定unix平臺(tái)的安裝文檔也有對核心參數(shù)意義的解釋.

init.ora中的參數(shù)如果設(shè)置不當(dāng),會(huì)產(chǎn)生該錯(cuò)誤.有經(jīng)驗(yàn)表明:shared_pool_size設(shè)置過小會(huì)出現(xiàn)錯(cuò)誤,此外timed_statistics=true的設(shè)置也會(huì)帶來問題.


oracle執(zhí)行文件權(quán)限不正確/環(huán)境變量問題

這個(gè)問題只出現(xiàn)在unix平臺(tái)上.常見情況是有的時(shí)侯管理員為了方便而使用unix
的tar命令處理過的壓縮包進(jìn)行的安裝,或者是系統(tǒng)管理員指定了額外的os用戶也可以管理數(shù)
據(jù)庫卻沒有指定正確的環(huán)境變量.

oracle執(zhí)行文件在$oracle_home/bin目錄下,如果出現(xiàn)問題,應(yīng)該用如下unix類似命令來糾正:

chmod 7755 $oracle_home/bin/oracle

有的時(shí)侯要對oracle進(jìn)行relink操作.
在unix上通過cp拷貝安裝的時(shí)候,常常會(huì)出現(xiàn)環(huán)境變量的問題,和個(gè)別執(zhí)行程序連接問題.ld_
library_path如果設(shè)置的不正確會(huì)導(dǎo)致問題,在這種情況下,需要對oracle進(jìn)行relink.如果
可執(zhí)行文件oralcle被破壞,也要對其relink.

如果安裝了并行服務(wù)器選項(xiàng)而distributed lock manager沒有安裝或正確運(yùn)行也會(huì)導(dǎo)致錯(cuò)誤.


客戶端通信不能正確處理

sql*net驅(qū)動(dòng)器的問題:
如果使用的版本比較低的驅(qū)動(dòng)器,請更換到新版本的驅(qū)動(dòng).sql*net
的驅(qū)動(dòng)沒有連接到oracle可執(zhí)行文件會(huì)導(dǎo)致錯(cuò)誤.

檢查網(wǎng)絡(luò)是否通暢

windows平臺(tái)的常見問題:
在windows平臺(tái)創(chuàng)建數(shù)據(jù)庫的時(shí)侯,如果出現(xiàn)該問題可以考慮用如下的方法:
首先檢查本地網(wǎng)絡(luò)設(shè)置.查看網(wǎng)絡(luò)上是否有同名的結(jié)點(diǎn)或有沖突的ip.如果問題依舊,可以保
守的用下面的方法:
1. 禁用網(wǎng)卡:將本地連接狀態(tài)改為禁用;
2. 將sqlnet.ora文件打開(以記事本形式)將nts驗(yàn)證注釋掉:
    #sqlnet.authentication_services= (nts).
3. 創(chuàng)建數(shù)據(jù)庫;
4. 創(chuàng)建成功后,恢復(fù)本地連接.

數(shù)據(jù)庫服務(wù)器崩潰/操作系統(tǒng)崩潰/進(jìn)程被kill

在連接過程中,如果oracle數(shù)據(jù)庫的服務(wù)器崩潰或者數(shù)據(jù)庫所在的操作系統(tǒng)崩潰,就會(huì)出現(xiàn)這
個(gè)錯(cuò)誤.oracle server崩潰的原因可能因?yàn)橹饕笈_(tái)進(jìn)程死掉.被錯(cuò)誤的進(jìn)行了kill操作.如果是這個(gè)原因還是比較容易解決的.此外,和os有關(guān)的應(yīng)用程序存在內(nèi)存泄漏(或者有病毒)的時(shí)侯也會(huì)導(dǎo)致oracle后臺(tái)程序問題.

推薦排錯(cuò)辦法:
1、 查看應(yīng)用軟件相關(guān)進(jìn)程是否正常運(yùn)行;
2、 查看有無內(nèi)存泄漏;
3、 查殺病毒;
4、 確定系統(tǒng)管理員沒有進(jìn)行誤操作;
5、 確定無黑客入侵行為.
6、 其它不確定因素......


oracle 內(nèi)部錯(cuò)誤/ bug

如果查看background_dump_dest目錄中的alert.log發(fā)現(xiàn)有無ora-600等錯(cuò)誤,可以到metalin
k站點(diǎn)上查看具體信息及其解決方案.一般情況下要打軟件補(bǔ)丁.


特定sql、pl/sql引起的錯(cuò)誤

嘗試把sql進(jìn)行分開執(zhí)行,也可以用sql_trace來進(jìn)行跟蹤,找到導(dǎo)致問題的sql語句:
在sqlplus下:
alter session set sql_trace true;

sql語句中的非法字符和不合理的處理結(jié)果偶爾會(huì)帶來問題.


系統(tǒng)空間不夠

任何時(shí)侯都要確保數(shù)據(jù)庫系統(tǒng)有足夠的空間.如果 user_dump_dest
和background_dump_dest沒有剩余空間的話,會(huì)導(dǎo)致此問題.此外,如果打開了審計(jì),audit目錄要由足夠的空間.如果激活了trace的話,trace目錄要由足夠的空間.

dave wotton的文檔表明,在對表進(jìn)行插入數(shù)據(jù)的時(shí)侯,如果文件超過了2g(而文件系統(tǒng)有2g限制),會(huì)導(dǎo)致該問題.


防火墻的問題

如果數(shù)據(jù)要通過防火墻,請聯(lián)系系統(tǒng)管理員,詢問是否對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行了過濾或者是突然禁
止了通行端口.如本地安裝有個(gè)人防火墻,請檢查本地設(shè)置.


其它方面說明

導(dǎo)致這個(gè)錯(cuò)誤的原因有很多種,上面列到的只是一些典型情況.經(jīng)常去一些數(shù)據(jù)庫技術(shù)論壇可
能會(huì)有幫助.比如說itpub(http://www.itpub.net)、cnoug(http://www.cnoug.org)等.


參考信息/更多閱讀

http://metalink.oracle.com   
oracle的技術(shù)支持站點(diǎn),要有csi號碼才可以登錄.
參考note編號:
note:17613.1
ora-3113 on unix - what information to collect
note:131207.1  
how to set unix environment variables 
note:131321.1
how to relink oracle database software on unix
note:22080.1

http://www.google.com/grphp?hl=zh-cn 
google新聞組

http://www.jlcomp.demon.co.uk/faq/ora-3113.html
技術(shù)專家jonathan lewis的站點(diǎn)上的一個(gè)faq

http://home.clara.net/dwotton/dba/ora3113.htm
dave wotton總結(jié)的一個(gè)很經(jīng)典的文檔.

 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 林甸县| 石门县| 华池县| 微山县| 河南省| 盖州市| 都兰县| 游戏| 息烽县| 台前县| 尚志市| 内江市| 恩平市| 隆德县| 呈贡县| 田林县| 南溪县| 饶平县| 鄢陵县| 朔州市| 泸水县| 新余市| 高密市| 手游| 利津县| 高碑店市| 鲁山县| 株洲县| 甘泉县| 喀喇沁旗| 阿合奇县| 洪湖市| 鹿邑县| 石棉县| 瑞金市| 通榆县| 札达县| 教育| 牙克石市| 西充县| 永胜县|