前言

今天巡检遇到数据库报错 ORA-07445 [qkaMarkQkn] 错误,数据库版本为 11204 (x86_64) ,错误日志如下:

ORA-07445: 出现异常错误: 核心转储 [qkaMarkQkn()+1478] [SIGSEGV] [ADDR:0x10] [PC:0x1A20E62] [Address not mapped to object] []

关键词:ORA-07445、[qkaMarkQkn()+1478]…

一、问题分析

1、通过 Oracle oerr 工具查看错误代码:
ora-07445

提示为内部错误,建议提交SR进行分析。

2、抓取trace文件关键信息:

Error: ORA-07445 [qkaMarkQkn()+1478] [SIGSEGV] [ADDR:0x10] [PC:0x1A20E62] [Address not mapped to object]
Error Stack: ORA-7445[qkaMarkQkn]
Main Stack:
qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn
<- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn
<- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn <- qkaMarkQkn <- qkadrv2Pre
<- qkadrv2 <- opitca <- kksFullTypeCheck <- rpiswu2 <- kksLoadChild <- kxsGetRuntimeLock
<- kksfbc <- opiexe <- kpoal8 <- opiodr <- kpoodrc <- rpiswu2 <- kpoodr <- upirtrc <- kpurcsc
<- kpuexec <- OCIStmtExecute <- qksanExecSql <- qksanAnalyzeSql <- qksanAnalyzeSegSql
<- kestsaAutoTunePqDrv <- kestsTuneSqlDrv <- kesaiExecAction
SQL脱敏:
Current SQL: / SQL Analyze(2399,1) / 一个select查询语句
通过trace文件可以看出在执行一个查询语句时导致报错ORA-7445。

3、通过查询MOS文档,发现该错误相符合的文档:

ORA-7445[qkaMarkQkn()+1584] Running a Large Query (Doc ID 2094809.1)

Doc ID 2094809.1
cause
4、提交SR的回复:

/ SQL Analyze(2399,1) / 一个select查询语句
This error typically only impacts the SQL Tuning job itself.
If the error is a one off incident then you can ignore it.
If such errors keep occurring in Jnnn processes when executing package DBMS_SQLTUNE_INTERNAL then a workaround is to disable the Automatic SQL Tuning Tasks as follows:
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
client_name => 'sql tuning advisor',
operation => NULL,
window_name => NULL );
END;
/
This will disable all automatic SQL tuning tasks but you can still perform “on-demand” SQL tuning to get advice on tuning specific SQL statements.
建议关闭SQL tuning来避免,但是感觉不是根本解决方案。读者可根据具体情况自行判断。

二、解决方案

solution
两种解决方案,任选其一即可。

1、修改_fix_control隐含参数:

alter session set "_fix_control" = '8560951:ON','5483301:ON';

2、修改OPTIMIZER_FEATURES_ENABLE参数

alter session set optimizer_features_enable='11.2.0.4';

参考官方文章: ORA-7445[qkaMarkQkn()+1584] Running a Large Query (Doc ID 2094809.1)

文章来源:https://www.modb.pro/db/70778

最后修改:2021 年 10 月 30 日
如果觉得我的文章对你有用,请随意赞赏