前言
每一個DBA在進行資料庫管理的過程中不可避免的要遇到形形色色的錯誤(ORA-xxxx).有些錯誤由於頻繁出現、原因複雜而被DBA們戲稱之爲"經典的錯誤".其中ORA-3113
"end of fileon communication channel" 就是這樣的一個.
我們可以簡單的把這個錯誤理解爲Oracle用戶端進程和資料庫後臺進程連接中斷.不過,導致這個錯誤的原因實際上有很多種,對資料庫設置不當、任何能導致資料庫後臺進程崩潰的行爲都可能産生這個錯誤.這個錯誤的出現還經常伴隨著其他錯誤,比如說:ORA-1034
ORACLE not available.
此外,該錯誤出現的場景複雜,可能出現在:
啓動的Oracle的時侯;
試圖創建資料庫的時侯;
試圖對資料庫進行連接的時侯;
在客戶端正在運行SQL/PL/SQL的時侯;
備份/恢復資料庫的時侯;
其他一些情況下......
在論壇上也時常可以看到初級DBA對這個問題的求救. 在這裏簡單的對該問題進行一下整理.不當之處,請多指教!
錯誤原因種種
根據網路上大家反映的情況來看,錯誤原因大約有這些:
Unix核心參數設置不當
Oracle執行文件許可權不正確/環境變數問題
用戶端通信不能正確處理
資料庫伺服器崩潰/作業系統崩潰/進程被kill
Oracle 內部錯誤
特定SQL、PL/SQL引起的錯誤
空間不夠
防火牆的問題
其他原因
在開始解決問題之前,作如下幾件事情:
1、 回憶一下在出現錯誤之前你都做了什麽操作,越詳細越好;
2、 查看background_dump_dest目錄中的alertSID.log文件也是你要做的事情;
3、
Google一下,在互聯網上有很多資訊等著你去發現,不要什麽都問別人.當然,如果你找到了一些對你非常有幫助的東西――這篇文檔就不用看了,別耽誤你的時間,呵呵.
Unix核心參數設置不當/ init參數設置不當
如果資料庫在安裝過程中沒有設定正確的作業系統核心變數,可能在安裝資料庫文件的時侯
沒甚麽問題,在創建資料庫的時侯常常會出現03113錯誤.和此有關的另一個原因是init.ora
參數文件中的processes參數指定了不合理的值,啓動資料庫導致錯誤出現(當然這個歸根到
底也是核心參數的問題).
這個錯誤資訊一般如下:
ORA-03113: end-of-file on communication channel
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
解決辦法有兩個:
1修改核心參數,加大相應核心參數的值(推薦);
2減小init.ora參數的Processes的值.
需要注意的是:
SEMMSL必須設定爲至少要10 + 進程數的最大值.
SEMMNS 也依賴於每個資料庫上的進程參數值.
-------------------------------------------------------------------------------
注:
這個錯誤類型只在Unix平臺上出現.在Windows上如果processes的值過大,則會出現:
ORA-00068: invalid value 24200001 for parameter
max_rollback_segments, must be
between 2 and 65535 /* 此時指定的參數值超過了65535 */
或者
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >> 没有相关教程
|