oracle 11.2.0.1告警日志报错ORA-03137与绑定变量窥探BUG9703463

简介: 2017年12月份第二次oracle数据库巡检中,发现某一地市oracle数据库发现SQL语句触发特定版本BUG
2017年12月份第二次oracle数据库巡检中,发现某一地市oracle数据库发现SQL语句触发特定版本BUG,详细信息如下:

操作系统版本:windows server 2008R2
数据库版本:oracle 11.2.0.1
问题描述:2017年12月份第二次巡检中,发现告警日志报错,报错信息如下:
19/12/2017 08:27:35 Tue Dec 19 08:27:35 2017
ORA-03137: TTC 协议内部错误: [12333] [6] [50] [48] [] [] [] []
Errors in file d:appadministratordiagrdbmsorclorcltraceorcl_ora_5480.trc (incident=36699):
Incident details in: d:appadministratordiagrdbmsorclorclincidentincdir_36699orcl_ora_5480_i36699.trc
18/12/2017 17:19:56 Mon Dec 18 17:19:56 2017
ORA-03137: TTC 协议内部错误: [12333] [6] [50] [48] [] [] [] []
Incident details in: d:appadministratordiagrdbmsorclorclincidentincdir_36554orcl_ora_4572_i36554.trc
Errors in file d:appadministratordiagrdbmsorclorcltraceorcl_ora_4572.trc (incident=36554):
18/12/2017 16:18:58 ORA-03137: TTC 协议内部错误: [12333] [6] [50] [48] [] [] [] []
Errors in file d:appadministratordiagrdbmsorclorcltraceorcl_ora_3968.trc (incident=36547):
Mon Dec 18 16:18:58 2017
Incident details in: d:appadministratordiagrdbmsorclorclincidentincdir_36547orcl_ora_3968_i36547.trc
根据orcl_ora_5480_i36699.trc文件发现触发ORA-03137的应用SQL语句确实使用绑定变量:
-----sql_id=cjx2sya2mu4zm
select *
from (select row_.*, rownum NumRow
from (select *
from (select
sid,
code,
to_char(month, 'yyyyMM') as month,
hisid,
bill_no,
state,
billdate,
hospital_id,
patient_id,
patient_name,
admission_number,
admission_disease_name,
disease_name,
claim_name,
benefit_name,
bmino,
benefit_group_name,
item_date,
dept_id,
dept_name,
item_id,
item_name,
item_type,
physician_name,
bmi_convered_amount,
bmi_nopay,
reject_reson,
remrk,
version_no,
hospital_backs,
versionstate,
rule_name,
back_reson,
reback_reason,
processState,
is_approval,
nvl(version, 1) as version,
nvl(trickProgress, 0) as trickProgress,
nvl(is_retrick, 0) as is_retrick,
PERIOD,
billex.NUMBER01 as Number01,
billex.NUMBER02 as Number02,
billex.NUMBER03 as Number03,
billex.NUMBER05 as Number05,
billex.NUMBER06 as Number06,
billex.NUMBER07 as Number07,
HOSPITAL_REMARK_DETAIL,
decode(bitand((select sum(distinct(nvl(g.rule_bit, 0)))
from gz_list g
where g.business_type = '0'),
rule_bit),
0,
0,
1) as BUSINESS_TYPE,
REFEEDBACK_REASON_DETAIL,
(select sum(a.reject_money)
from dw_opinion_details b
join dw_billdetail a
on a.id = b.detailid
where b.code = dw_opinions.code
and b.version_no = dw_opinions.version_no
and b.month = dw_opinions.month) as sumrejectmoney
from dw_opinions
left join dw_bill_ex billex
on dw_opinions.hisid = billex.billid
where 1 = 1
and month = to_date(:ParamMonth0, 'yyyyMM')
and hospital_id = :ParamHospitalId1
and version_no = :versionno2
and bill_no = :ParamBillNo3
order by month desc, sid)) row_
where rownum <= 10)
where NumRow > 0 ;

    针对ORA03137与oracle 11.2.0.1 for windows server 2008R2查看oracle metalink,ORA-03137: TTC 协议内部错误: [12333] [6] [50] [48] 与应用SQL语句使用绑定变量有关,

是非公共Bug:9703463(文档 ID 1615363.1):
1

解决办法:
1、解决Oracle 11.2.0.1 因绑定变量触发ora-03137错误的补丁已包含在PSU补丁集Patch:10245351中,需要对数据库应用补丁集Patch:10245351

 风险:oracle数据库应用补丁集可能引入新的未知BUG

2、关闭oracle 11.2.0.1绑定变量功能:alter system set "_optim_peek_user_binds"=false;

 风险:将导致数据库不稳定,引起应用sql语句执行计划不准确

3、将数据库版本升级到11.2.0.3以上版本可解决ORA-03137问题

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
6月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
10月前
|
数据采集 运维 监控
数据采集监控与告警:错误重试、日志分析与自动化运维
本文探讨了数据采集技术从“简单采集”到自动化运维的演进。传统方式因反爬策略和网络波动常导致数据丢失,而引入错误重试、日志分析与自动化告警机制可显著提升系统稳定性与时效性。正方强调健全监控体系的重要性,反方则担忧复杂化带来的成本与安全风险。未来,结合AI与大数据技术,数据采集将向智能化、全自动方向发展,实现动态调整与智能识别反爬策略,降低人工干预需求。附带的Python示例展示了如何通过代理IP、重试策略及日志记录实现高效的数据采集程序。
479 7
数据采集监控与告警:错误重试、日志分析与自动化运维
|
10月前
|
Oracle 关系型数据库 MySQL
【YashanDB知识库】oracle dblink varchar类型查询报错记录
这篇文章主要介绍了 Oracle DBLINK 查询崖山 DB 报错的相关内容,包括 ODBC 安装配置、数据源配置、dblink 环境配置、问题原因分析及规避方法。问题原因是 dblink 连接其他数据库时 varchar 类型转换导致的,还介绍了 long 类型限制、char 等类型区别,规避方法是修改参数 MAX_STRING_SIZE 支持 32K。
|
12月前
|
Oracle 关系型数据库 数据库
【YashanDB知识库】oracle dblink varchar类型查询报错记录
在使用Oracle DBLink查询VARCHAR类型数据时,可能会遇到多种报错。通过了解常见错误原因,采取合适的解决方法,可以有效避免和处理这些错误。希望本文提供的分析和示例能帮助你在实际工作中更好地处理DBLink查询问题。
386 10
|
10月前
|
SQL 数据库
【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到
【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
293 1
|
存储 运维 Serverless
函数计算产品使用问题之日志告警不生效,一般是由于什么造成的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
165 0
|
资源调度 Oracle 关系型数据库
实时计算 Flink版产品使用问题之同步oracle表时,任务不报错,但是读不到数据,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
监控 Oracle 关系型数据库

推荐镜像

更多