天天看點

ora-03113或者ora-12573 通信通道的檔案結束出現異常錯誤:核心轉儲

今天oracle資料庫莫名其妙地出現登入後執行報“通信通道的檔案結束錯誤處理”的錯誤

通過多次的調試最後鎖定在執行分頁SQL語句時候會報03113的錯誤,于是修改分頁SQL語句,基本上能嘗試的都嘗試了。最後還是無動于衷,

該報錯的地方還是報錯。

 ora-03113 通信通道的檔案結束錯誤處理

編輯D:/oracle/ora92/network/admin/sqlnet.ora檔案,将LNET.AUTHENTICATION_SERVICES= (MTC)或者SQLNET.AUTHENTICATION_SERVICES= (NTS)修改為NET.AUTHENTICATION_SERVICES= (NONE). 

當日志中出現:

Mon Oct 26 17:18:08 2009

Errors in file d:/oracle/product/10.2.0/admin/orcl/udump/orcl_ora_1676.trc:

ORA-07445: 出現異常錯誤: 核心轉儲 [ACCESS_VIOLATION] [_kglLockCursor+279] [PC:0x3FE9971] [ADDR:0xB8458B4E] [UNABLE_TO_READ] []

可以重新開機伺服器,清空資料共享池

于是我就修改了資料庫參數

SQL> alter system set cursor_sharing=similar;

System altered.

Elapsed: 00:00:00.00

SQL> show parameter cursor_sharing

NAME     TYPE     VALUE

--------     ---------    -----------

cursor_sharing string SIMILAR

2 清空一下共享池

SQL> alter system flush shared_pool;

3.重新開機資料庫,再檢查這個報錯的功能,正常了!

cursor_sharing這個參數是用來告訴Oracle在什麼情況下可以共享遊标,即SQL重用。

    Cursor_sharing參數有3個值可以設定:

     1)、EXACT:通常來說,exact值是Oracle推薦的,也是預設的,它要求SQL語句在完全相同時才會重用,否則會被重新執行硬解析操作。

     2)、SIMILAR:similar是在Oracle認為某條SQL語句的謂詞條件可能會影響到它的執行計劃時,才會被重新分析,否則将重用SQL。

     3)、FORCE:force是在任何情況下,無條件重用SQL。

   備注:上面所說的SQL重用,僅僅是指謂詞條件不同的SQL語句,實際上這樣的SQL基本上都在執行同樣的業務操作。