每一個DBA在進行數(shù)據(jù)庫管理的過程中不可避免的要遇到形形色色的錯誤(ORA-1547 ,ORA-904,ORA-1578 ......)。有些錯誤由于頻繁出現(xiàn)
前言
每一個DBA在進行數(shù)據(jù)庫管理的過程中不可避免的要遇到形形色色的錯誤(ORA-1547 ,ORA-904,ORA-1578 ......)。有些錯誤由于頻繁出現(xiàn)、原因復雜而被 Oracle DBA 們戲稱之為"經(jīng)典的錯誤"。其中ORA-3113 "end of file on communication channel" 就是這樣的一個。
我們可以簡單的把這個錯誤理解為Oracle客戶端進程和數(shù)據(jù)庫后臺進程連接中斷。不過,導致這個錯誤的原因實際上有很多種:對數(shù)據(jù)庫設置不當、任何能導致數(shù)據(jù)庫后臺進程崩潰的行為都可能產(chǎn)生這個錯誤。這個錯誤的出現(xiàn)還經(jīng)常伴隨著其它錯誤,比如說:
ORA-1034 ORACLE not available
此外,該錯誤出現(xiàn)的場景復雜,可能出現(xiàn)在:
啟動的Oracle的時侯
試圖創(chuàng)建數(shù)據(jù)庫的時侯
試圖對數(shù)據(jù)庫進行連接的時侯
在客戶端正在運行SQL/PL/SQL的時侯
備份/恢復數(shù)據(jù)庫的時侯
其它一些情況下......
在論壇上也時常可以看到初級DBA對這個問題的求救。在這里簡單的對該問題進行一下整理。
錯誤原因種種
根據(jù)網(wǎng)絡上大家反映的情況來看,錯誤原因大約有這些:
Unix核心參數(shù)設置不當
Oracle執(zhí)行文件權限不正確/環(huán)境變量問題
客戶端通信不能正確處理
數(shù)據(jù)庫服務器崩潰/操作系統(tǒng)崩潰/進程被kill
Oracle 內部錯誤
特定SQL、PL/SQL引起的錯誤
空間不夠
防火墻的問題
其它原因
在開始解決問題之前,作如下幾件事情:
回憶一下在出現(xiàn)錯誤之前你都做了什么操作,越詳細越好;
查看 background_dump_dest 目錄中的 alertSID.log 文件也是你必須要的事情;
用Google.COM 搜索一下,在互聯(lián)網(wǎng)上有很多信息等著你去發(fā)現(xiàn),不要什么都問別人。
當然, 如果你找到了一些對你更有幫助的東西--這篇文檔就不用看了 :-)
錯誤原因情景分析
Unix核心參數(shù)設置不當 / init參數(shù)設置不當
如果數(shù)據(jù)庫在安裝過程中沒有設定正確的操作系統(tǒng)核心變量,,可能在安裝數(shù)據(jù)庫文件的時侯沒甚么問題,在創(chuàng)建數(shù)據(jù)庫的時侯常常會出現(xiàn)03113錯誤。和此有關的另一個原因是init.ora 參數(shù)文件中的processes參數(shù)指定了不合理的值,啟動數(shù)據(jù)庫導致錯誤出現(xiàn)(當然這個歸根到底也是核心參數(shù)的問題)。
這個錯誤信息一般如下:
ORA-03113: end-of-file on communication channel
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
解決辦法有兩個:
1、修改核心參數(shù),加大相應核心參數(shù)的值(推薦);
2、減小init.ora參數(shù)的Processes的值。
需要注意的是:
SEMMSL必須設定為至少要10 + '進程數(shù)的最大值';
SEMMNS 也依賴于每個數(shù)據(jù)庫上的進程參數(shù)值。
注:
這個錯誤類型只在Unix平臺上出現(xiàn)。在Windows上如果processes的值過大,則會出現(xiàn)類似如下的錯誤:
ORA-00068: invalid value 24200001 for parameter max_rollback_segments,
must be between 2 and 65535
/* 此時指定的參數(shù)值超過了65535 */
或者
ORA-27102: out of memory
/* 小于65535的一個大參數(shù)值 */ 軟件環(huán)境:
Windows 2000 Version 5.0 Service Pack 3, CPU type 586
ORACLE RDBMS Version: 8.1.7.0.0
在特定平臺上更改核心參數(shù)可能會有差別,請參考Oracle Technet() 上的安裝文檔。對特定Unix平臺的安裝文檔也有對核心參數(shù)意義的解釋。 Init.ora中的參數(shù)如果設置不當,會產(chǎn)生該錯誤。有經(jīng)驗表明:shared_pool_size設置 過小會出現(xiàn)錯誤,此外timed_statistics=true的設置也會帶來問題。
Oracle執(zhí)行文件權限不正確/環(huán)境變量問題
這個問題只出現(xiàn)在Unix平臺上。常見情況是有的時侯管理員為了方便而使用Unix的tar命令 處理過的壓縮包進行的安裝,或者是系統(tǒng)管理員指定了額外的OS用戶也可以管理數(shù)據(jù)庫卻沒 有指定正確的環(huán)境變量。
Oracle執(zhí)行文件在$ORACLE_HOME/bin目錄下,如果出現(xiàn)問題,應該用如下Unix類似命令來糾正 :
#chmod 7755 $ORACLE_HOME/bin/oracle
有的時侯要對Oracle進行relink操作。
在Unix上通過cp拷貝安裝的時候,常常會出現(xiàn)環(huán)境變量的問題,和個別執(zhí)行程序連接問題。 LD_LIBRARY_PATH如果設置的不正確會導致問題,在這種情況下,需要對Oracle進行relink。 如果可執(zhí)行文件oralcle被破壞,也要對其relink。 如果安裝了并行服務器選項而Distributed Lock Manager沒有安裝或正確運行也會導致錯誤。
客戶端通信不能正確處理
1.SQL*Net驅動器的問題:
如果使用的版本比較低的驅動器,請更換到新版本的驅動。 SQL*Net 的驅動沒有連接到Oracle可執(zhí)行文件會導致錯誤。
2.檢查TCP/IP網(wǎng)絡是否通暢;
3.Windows平臺的常見網(wǎng)絡問題:
在Windows平臺創(chuàng)建數(shù)據(jù)庫的時侯,如果出現(xiàn)該問題可以考慮用如下的方法:
聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com