转发自 惜分飞:http://www.xifenfei.com/tag/wri_adv_sqlt_rtn_plan

文章目录

  • 数据库版本
  • alert 日志报错
  • 情景再现
  • 解决办法

近日遇到告警日志报错,如下:

2020-06-04T16:31:48.532177+08:00
WARNING: too many parse errors, count=513 SQL hash=0x750004bb
PARSE ERROR: ospid=32623, error=933 for statement:
2020-06-04T16:31:48.532328+08:00
DELETE FROM wri$_adv_sqlt_rtn_planWHERE task_id = :tid AND exec_name = :execution_name
Additional information: hd=0x2bea60738 phd=0x2bea60968 flg=0x28 cisid=0 sid=0 ciuid=0 uid=0
2020-06-04T16:31:48.567323+08:00
----- PL/SQL Call Stack -----object      line  objecthandle    number  name
0x460e30f08       259  type body SYS.WRI$_ADV_SQLTUNE.SUB_DELETE_EXECUTION
0x6b8d30e8      2134  package body SYS.PRVT_ADVISOR.COMMON_DELETE_TASK
0x6b8d30e8      7342  package body SYS.PRVT_ADVISOR.DELETE_EXPIRED_TASKS
0x474636780         1  anonymous block
2020-06-04T16:31:50.024334+08:00
WARNING: too many parse errors, count=613 SQL hash=0x750004bb
PARSE ERROR: ospid=32623, error=933 for statement:
2020-06-04T16:31:50.024485+08:00
DELETE FROM wri$_adv_sqlt_rtn_planWHERE task_id = :tid AND exec_name = :execution_name
Additional information: hd=0x2bea60738 phd=0x2bea60968 flg=0x28 cisid=0 sid=0 ciuid=0 uid=0

找到了最靠谱的飞大哥的Blog。特此记录。

数据库版本

SQL> set lines 200
SQL> select * from v$version;BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production              0
PL/SQL Release 12.2.0.1.0 - Production                                                    0
CORE    12.2.0.1.0      Production                                                                0
TNS for Linux: Version 12.2.0.1.0 - Production                                            0
NLSRTL Version 12.2.0.1.0 - Production                                                    0

alert 日志报错

每天的早上9:19 左右都会有这么一坨的报错。强迫症患者要犯病了。!!

2020-06-04T08:09:19.535349+08:00
WARNING: too many parse errors, count=100 SQL hash=0x750004bb
PARSE ERROR: ospid=28430, error=933 for statement:
2020-06-04T08:09:19.535490+08:00
DELETE FROM wri$_adv_sqlt_rtn_planWHERE task_id = :tid AND exec_name = :execution_name
Additional information: hd=0x2bea60738 phd=0x2bea60968 flg=0x28 cisid=0 sid=0 ciuid=0 uid=0
2020-06-04T08:09:19.535632+08:00
----- PL/SQL Call Stack -----object      line  objecthandle    number  name
0x460e30f08       259  type body SYS.WRI$_ADV_SQLTUNE.SUB_DELETE_EXECUTION
0x6b8d30e8      2134  package body SYS.PRVT_ADVISOR.COMMON_DELETE_TASK
0x6b8d30e8      7342  package body SYS.PRVT_ADVISOR.DELETE_EXPIRED_TASKS
0x7776f560         1  anonymous block
2020-06-04T08:09:24.309711+08:00
WARNING: too many parse errors, count=200 SQL hash=0x750004bb
PARSE ERROR: ospid=28430, error=933 for statement:
2020-06-04T08:09:24.309846+08:00
DELETE FROM wri$_adv_sqlt_rtn_planWHERE task_id = :tid AND exec_name = :execution_name
Additional information: hd=0x2bea60738 phd=0x2bea60968 flg=0x28 cisid=0 sid=0 ciuid=0 uid=0
2020-06-04T08:09:24.310005+08:00
----- PL/SQL Call Stack -----object      line  objecthandle    number  name
0x460e30f08       259  type body SYS.WRI$_ADV_SQLTUNE.SUB_DELETE_EXECUTION
0x6b8d30e8      2134  package body SYS.PRVT_ADVISOR.COMMON_DELETE_TASK
0x6b8d30e8      7342  package body SYS.PRVT_ADVISOR.DELETE_EXPIRED_TASKS
0x7776f560         1  anonymous block
2020-06-04T08:09:26.535249+08:00
WARNING: too many parse errors, count=300 SQL hash=0x750004bb
PARSE ERROR: ospid=28430, error=933 for statement:
2020-06-04T08:09:26.535401+08:00
DELETE FROM wri$_adv_sqlt_rtn_planWHERE task_id = :tid AND exec_name = :execution_name
Additional information: hd=0x2bea60738 phd=0x2bea60968 flg=0x28 cisid=0 sid=0 ciuid=0 uid=0
2020-06-04T08:09:26.535567+08:00
----- PL/SQL Call Stack -----object      line  objecthandle    number  name
0x460e30f08       259  type body SYS.WRI$_ADV_SQLTUNE.SUB_DELETE_EXECUTION
0x6b8d30e8      2134  package body SYS.PRVT_ADVISOR.COMMON_DELETE_TASK
0x6b8d30e8      7342  package body SYS.PRVT_ADVISOR.DELETE_EXPIRED_TASKS
0x7776f560         1  anonymous block
WARNING: too many parse errors, count=400 SQL hash=0x750004bb
PARSE ERROR: ospid=28430, error=933 for statement:
2020-06-04T08:09:27.481993+08:00
DELETE FROM wri$_adv_sqlt_rtn_planWHERE task_id = :tid AND exec_name = :execution_name
Additional information: hd=0x2bea60738 phd=0x2bea60968 flg=0x28 cisid=0 sid=0 ciuid=0 uid=0
2020-06-04T08:09:27.482208+08:00
----- PL/SQL Call Stack -----object      line  objecthandle    number  name
0x460e30f08       259  type body SYS.WRI$_ADV_SQLTUNE.SUB_DELETE_EXECUTION
0x6b8d30e8      2134  package body SYS.PRVT_ADVISOR.COMMON_DELETE_TASK
0x6b8d30e8      7342  package body SYS.PRVT_ADVISOR.DELETE_EXPIRED_TASKS
0x7776f560         1  anonymous block

这里比较明显由于DELETE FROM wri$_adv_sqlt_rtn_planWHERE这条sql语法不对,导致无法解析因此报了ORA-00933错误.

情景再现

手动执行以下调用SQL,会再次触发该问题:

SQL>  exec SYS.PRVT_ADVISOR.DELETE_EXPIRED_TASKS();PL/SQL procedure successfully completed.

就是他!就是他! 。。报错如下:

2020-06-04T16:31:50.024688+08:00
----- PL/SQL Call Stack -----object      line  objecthandle    number  name
0x460e30f08       259  type body SYS.WRI$_ADV_SQLTUNE.SUB_DELETE_EXECUTION
0x6b8d30e8      2134  package body SYS.PRVT_ADVISOR.COMMON_DELETE_TASK
0x6b8d30e8      7342  package body SYS.PRVT_ADVISOR.DELETE_EXPIRED_TASKS
0x474636780         1  anonymous block
2020-06-04T16:31:51.234957+08:00
WARNING: too many parse errors, count=713 SQL hash=0x750004bb
PARSE ERROR: ospid=32623, error=933 for statement:
.
.(此处忽略了大部分报错)
.
....

证明该程序本身有问题,属于oracle bug范畴,查询mos发现相关Bug 26764561 : ORA-00933 IN SYS.WRI$_ADV_SQLTUNE.SUB_DELETE_EXECUTION

解决办法

惜分飞大哥指出明路,,打补丁:

12C DELETE FROM wri$_adv_sqlt_rtn_planWHERE task_id = :tid AND exec_name = :execution_name相关推荐

  1. MySQL中删除重复数据

    2019独角兽企业重金招聘Python工程师标准>>> 参考网页 SQL删除重复数据只保留一条 https://blog.csdn.net/anya/article/details/ ...

  2. 51单片机多任务操作系统的原理与实现

    写在前面的话:这篇文章值得看十遍.分享一下 51单片机多任务操作系统的原理与实现 -- 一个超轻量级的操作系统 前言 想了很久,要不要写这篇文章?最后觉得对操作系统感兴趣的人还是很多,写吧.我不一定能 ...

  3. python mysql操作_Python的MySQL操作

    Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库. Python DB-API使用流程: 引入API模块. 获取与数据库的连接. 执行SQL ...

  4. 自动清理归档日志_从MYSQL 数据库归档 到 归档设计

    到数据归档,很多人的第一个概念就是,不就是无用的数据,换个地方放吗,直接拷贝,删除不就得了,有那么麻烦. 我见到过的,听到过的数据库归档的方法有以下几种 1  数据通过人工的手段来进行清理,直接将表换 ...

  5. 解剖8051内核如何进行多任务切换

    最近在玩新唐单片机,这个跟我之前用的51内核是一样的,然后今天觉得跑下多任务,自己研究了下,跟几个同学还讨论了,发现有些人对切换过程还不是十分明白,所以发个文章出来. 直接上代码 #include & ...

  6. SQL Performance Analyzer SPA常用脚本汇总

    SPA常用脚本汇总 附件为 一个SPA报告 spa_buffergets_summary SQL 性能分析器 SQL Performance Analyzer SPA Oracle Database ...

  7. 归档日志存在arch_从MYSQL 数据库归档 到 归档设计

    到数据归档,很多人的第一个概念就是,不就是无用的数据,换个地方放吗,直接拷贝,删除不就得了,有那么麻烦. 我见到过的,听到过的数据库归档的方法有以下几种 1  数据通过人工的手段来进行清理,直接将表换 ...

  8. oracle一次提交大量sql语句 begin end的使用

    有时候业务会包含很多次数据库操作,为了减少数据库连接,我们会选择一次提交大量sql, 这时我们会用到begin end,使用begin end需要注意的是,每个sql语句都要确保以";&qu ...

  9. Linux线程操作以及相关知识

    1 线程 ◼ 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机 制.一个进程可以包含多个线程.同一个程序中的所有线程均会独立执行相同程序,且共 享同一份全局内存 ...

最新文章

  1. 搭建Zabbix分布式监控
  2. 近乎于“神”的任正非
  3. 《深入理解Java虚拟机》-----第3章 垃圾收集器与内存分配策略
  4. 民生银行马坡数据中心基础设施Uptime Mamp;O运营管理体系建立与实施
  5. 在宽字节环境下获取EditBox中的CString转换为char[]
  6. C++中如何使用大整数__int 128
  7. 我辞掉程序员的工作,体验了半年的自驾游生活
  8. snort配置文件中的PORT解析
  9. java h5服务器推送事件_关于H5+中push推送的服务端代码是怎么写的
  10. 安装 Dynamics AX 2012 Data Migration Framework
  11. 【Java代码笔记】
  12. linux ubi 分区,ubi卷重分区及卷创建流程解析
  13. 美面魔心伊莉丝:会有蜘蛛之神制裁你
  14. Win10防火墙放行MySQL3306端口
  15. Centos挂载iscsi存储(浪潮存储)
  16. 充分使用腾讯云服务器搭建自己的网站
  17. Version 28 (intended for Android Pie and below) is the last version of the legacy support library
  18. GIS定位和自定义图标
  19. 操盘手的灵魂 - 交易纪律
  20. Oracle:获取数据库系统的当前时间

热门文章

  1. Go语言实现枚举方法,const和iota结合轻松实现
  2. 泰克示波器DPO3054自校准SPC失败维修
  3. 报警系统QuickAlarm之报警规则的设定与加载
  4. 门限的限意思是什么_只限是什么意思和拼音怎么读
  5. 360和QQ,拿什么来拯救你?
  6. 一句话概括 —— ML(机器学习)
  7. 正则表达式的贪婪型,勉强型,占有型
  8. 计算机组成原理总复习文档
  9. SAP中常用到的增强
  10. 治疗腰椎间盘突出特效方