一、报错现象
应用人员反馈连接不上数据库,连接报错。
我们使用PLSQL发现可以连接数据库,但是数据库DB Alert存在如下报错信息
DB Alert
Fri Oct 18 10:56:43 2019 Errors in file d:appadmindiag dbmsorclorcl raceorcl_ora_1884.trc (incident=596754): ORA-03137: TTC protocol internal error : [12333] [64] [0] [54] [] [] [] [] Fri Oct 18 10:56:43 2019 Sweep [inc][596754]: completed
DB Trace
Dump file d:appadmindiag dbmsorclorclincidentincdir_597001orcl_ora_3516_i597001.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
ORA-03137: TTC protocol internal error : [12333] [64] [0] [54] [] [] [] []
========= Dump for incident 597001 (ORA 3137 [12333]) ========
*** 2019-10-18 11:29:24.282
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- Current SQL Statement for this session (sql_id=133j06f4rsmfb) -----
select N0."OID",N0."BID",N0."CODE",N0."NAME",N0."ENA",N0."CMM",N0."CRE",N0."MDF",N0."RES",N0."RQT",N0."QMN",N0."QMX",N0."TYP",N0."STA",N0."STO",N0."RST",N0."RET",N0."RFX",N0."TFX",N0."WOP",N0."TUS",N0."STR",N0."PRE",N0."NXT",N0."LEN",N0."MUI" from "WUS" N0
where (N0."RES" = :p0)
二、问题处理
MOS 匹配
Document 9703463.8 Document 1388487.1 This bug is fixed in: 12.1 (Future Release) 11.2.0.2 (Server Patch Set) 11.2.0.1 Bundle Patch 12 for Exadata Database 11.1.0.7.8 Patch Set Update 11.2.0.1 Patch 8 on Windows Platforms 11.1.0.7 Patch 37 on Windows Platforms Solutions: 1. The quickest solution is to apply the workaround of setting _optim_p to false to disable bind peeking. However, this may impact performance SQL> alter system set "_optim_peek_user_binds"=false; 2. If you would prefer a fix to the issue and are on database version 11.2 latest patch set. If you are on database version 11.1, apply the latest PS patch set contains the fix to all 4 bugs. Oracle recommends applying pa available instead of individual patches. 3. If you would prefer an individual patch, then refer to Patch 9703463f patches. You may also need to apply Patch 12534597to correct an issu the fix to bug 9703463. If the issue is not resolved by these patches, the need to apply the patch for the other 3 bugs. To determine if a patch is available click on the patch link provided abo following: 1. Choose 11.2.0.1.0 as the "Release" 2. Choose Windows NT Version V6.1 Service Pack 1 as the "Platfo NOTE: The database version and platform will not appear in the drop d when a patch is unavailable for that database version and platform.
根据Alert,问题说明并非应用反馈的连接报错,而是应用已经连接数据库后,执行SQL,遇到了oracle bug导致,应用反馈数据库操作异常。
select instance_number,sql_id,name, datatype_string,last_captured,value_string from dba_hist_sqlbind where sql_id='&sql_id' and rownum<10 order by LAST_CAPTURED,POSITION;
根据另一个trace中的userid得到用户名称,上述绑定变量查询到具体值,测试执行返回Null值
根据上述种种信息,尝试执行参数修改:
SQL> alter system set "_optim_peek_user_binds"=false;
问题解决(在修改参数前,已重启应用无效果)