談笑有鴻儒,往來無白丁

          在恰當?shù)臅r間、地點以恰當?shù)姆绞奖磉_給恰當?shù)娜?..  閱讀的時候請注意分類,佛曰我日里面是談笑文章,其他是各個分類的文章,積極的熱情投入到寫博的隊伍中來,支持blogjava做大做強!向dudu站長致敬>> > 我的微博敬請收聽

          我是在數(shù)據(jù)庫導入的時候發(fā)生的錯誤,當日我一看就明白了,原來是當時我導出數(shù)據(jù)庫的時候中斷操作所致的

          ORA-03113錯誤分析
          版本歷史:
          2003-5-22 v0.1 Created by Fenng
          2003-12-17 v0.3 Edited by Fenng

          版權聲明: 轉載請注明作者及出處。并請保留超鏈接。


          前言

          每一個DBA在進行數(shù)據(jù)庫管理的過程中不可避免的要遇到形形色色的錯誤(ORA-xxxx)。有些錯
          誤由于頻繁出現(xiàn)、原因復雜而被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ù)庫的時侯;
          其它一些情況下......
          在論壇上也時??梢钥吹匠跫塂BA對這個問題的求救. 在這里簡單的對該問題進行一下整理.不當之處,請多指教!

          錯誤原因種種

          根據(jù)網(wǎng)絡上大家反映的情況來看,錯誤原因大約有這些:

          Unix核心參數(shù)設置不當
          Oracle執(zhí)行文件權限不正確/環(huán)境變量問題
          客戶端通信不能正確處理
          數(shù)據(jù)庫服務器崩潰/操作系統(tǒng)崩潰/進程被kill
          Oracle 內(nèi)部錯誤
          特定SQL、PL/SQL引起的錯誤
          空間不夠
          防火墻的問題
          其它原因
          在開始解決問題之前,作如下幾件事情:

          回憶一下在出現(xiàn)錯誤之前你都做了什么操作,越詳細越好;
          查看background_dump_dest目錄中的alertSID.log文件也是你要做的事情;
          Google一下,在互聯(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(http://otn.oracle.com)上的安裝文檔.對特定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沒有安裝或正確運行也會導致錯誤.
          客戶端通信不能正確處理

          SQL*Net驅動器的問題:
          如果使用的版本比較低的驅動器,請更換到新版本的驅動.SQL*Net
          的驅動沒有連接到Oracle可執(zhí)行文件會導致錯誤.

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

          Windows平臺的常見問題:

          在Windows平臺創(chuàng)建數(shù)據(jù)庫的時侯,如果出現(xiàn)該問題可以考慮用如下的方法:
          首先檢查本地網(wǎng)絡設置.查看網(wǎng)絡上是否有同名的結點或有沖突的IP.如果問題依舊,可以保
          守的用下面的方法:

          1. 禁用網(wǎng)卡:將本地連接狀態(tài)改為禁用;
          2. 將sqlnet.ora文件打開(以記事本形式)將nts驗證注釋掉:
          <&>#SQLNET.AUTHENTICATION_SERVICES= (NTS).
          3. 創(chuàng)建數(shù)據(jù)庫;
          4. 創(chuàng)建成功后,恢復本地連接.
          數(shù)據(jù)庫服務器崩潰/操作系統(tǒng)崩潰/進程被Kill

          在連接過程中,如果Oracle數(shù)據(jù)庫的服務器崩潰或者數(shù)據(jù)庫所在的操作系統(tǒng)崩潰,就會出現(xiàn)這
          個錯誤.Oracle
          Server崩潰的原因可能因為主要后臺進程死掉.被錯誤的進行了Kill操作.如果是這個原因還
          是比較容易解決的.此外,和OS有關的應用程序存在內(nèi)存泄漏(或者有病毒)的時侯也會導致Or
          acle后臺程序問題.

          推薦排錯辦法:

          1、 查看應用軟件相關進程是否正常運行;
          2、 查看有無內(nèi)存泄漏;
          3、 查殺病毒;
          4、 確定系統(tǒng)管理員沒有進行誤操作;
          5、 確定無黑客入侵行為.
          6、 其它不確定因素......
          Oracle 內(nèi)部錯誤/ Bug

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


          特定SQL、PL/SQL引起的錯誤

          嘗試把SQL進行分開執(zhí)行,也可以用SQL_TRACE來進行跟蹤,找到導致問題的SQL語句:
          在SQLPlus下:

          ALTER SESSION SET SQL_TRACE=TRUE;


          SQL語句中的非法字符和不合理的處理結果偶爾會帶來問題.


          系統(tǒng)空間不夠

          任何時侯都要確保數(shù)據(jù)庫系統(tǒng)有足夠的空間.如果 USER_DUMP_DEST
          和BACKGROUND_DUMP_DEST沒有剩余空間的話,會導致此問題.此外,如果打開了審計,AUDIT目
          錄要由足夠的空間.如果激活了Trace的話,Trace目錄要由足夠的空間.

          Dave Wotton的文檔表明,在對表進行插入數(shù)據(jù)的時侯,如果文件超過了2G
          (而文件系統(tǒng)有2G限制),會導致該問題.


          防火墻的問題

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


          其它方面說明

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

          參考信息/更多閱讀

          http://metalink.oracle.com
          Oracle的技術支持站點,要有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
          技術專家Jonathan Lewis的站點上的一個FAQ

          原文出處:

          <a href=">

          返回


          I would welcome any feedback.
          Please send questions, comments or corrections to
          Fenng@itpub.net .

          posted on 2006-08-19 21:01 壞男孩 閱讀(3984) 評論(0)  編輯  收藏 所屬分類: ORACLE篇章
          主站蜘蛛池模板: 呼图壁县| 芒康县| 瑞丽市| 任丘市| 杭锦后旗| 武夷山市| 惠东县| 闽清县| 循化| 泽普县| 莆田市| 河源市| 宁化县| 衡阳市| 田林县| 策勒县| 泰宁县| 黄石市| 曲水县| 西藏| 呈贡县| 古交市| 高邑县| 行唐县| 陕西省| 永城市| 余江县| 福安市| 高邑县| 武宣县| 卢湾区| 宜良县| 桐庐县| 阿巴嘎旗| 西林县| 伊春市| 通渭县| 苏尼特右旗| 弋阳县| 澜沧| 乌兰察布市|