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] []

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;
System altered.

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基本上都在执行同样的业务操作。

posted @ 2020-07-09 18:33  土伦  阅读(645)  评论(1编辑  收藏  举报