12C DELETE FROM wri$_adv_sqlt_rtn_planWHERE task_id = :tid AND exec_name = :execution_name
转发自 惜分飞: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相关推荐
- MySQL中删除重复数据
2019独角兽企业重金招聘Python工程师标准>>> 参考网页 SQL删除重复数据只保留一条 https://blog.csdn.net/anya/article/details/ ...
- 51单片机多任务操作系统的原理与实现
写在前面的话:这篇文章值得看十遍.分享一下 51单片机多任务操作系统的原理与实现 -- 一个超轻量级的操作系统 前言 想了很久,要不要写这篇文章?最后觉得对操作系统感兴趣的人还是很多,写吧.我不一定能 ...
- python mysql操作_Python的MySQL操作
Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库. Python DB-API使用流程: 引入API模块. 获取与数据库的连接. 执行SQL ...
- 自动清理归档日志_从MYSQL 数据库归档 到 归档设计
到数据归档,很多人的第一个概念就是,不就是无用的数据,换个地方放吗,直接拷贝,删除不就得了,有那么麻烦. 我见到过的,听到过的数据库归档的方法有以下几种 1 数据通过人工的手段来进行清理,直接将表换 ...
- 解剖8051内核如何进行多任务切换
最近在玩新唐单片机,这个跟我之前用的51内核是一样的,然后今天觉得跑下多任务,自己研究了下,跟几个同学还讨论了,发现有些人对切换过程还不是十分明白,所以发个文章出来. 直接上代码 #include & ...
- SQL Performance Analyzer SPA常用脚本汇总
SPA常用脚本汇总 附件为 一个SPA报告 spa_buffergets_summary SQL 性能分析器 SQL Performance Analyzer SPA Oracle Database ...
- 归档日志存在arch_从MYSQL 数据库归档 到 归档设计
到数据归档,很多人的第一个概念就是,不就是无用的数据,换个地方放吗,直接拷贝,删除不就得了,有那么麻烦. 我见到过的,听到过的数据库归档的方法有以下几种 1 数据通过人工的手段来进行清理,直接将表换 ...
- oracle一次提交大量sql语句 begin end的使用
有时候业务会包含很多次数据库操作,为了减少数据库连接,我们会选择一次提交大量sql, 这时我们会用到begin end,使用begin end需要注意的是,每个sql语句都要确保以";&qu ...
- Linux线程操作以及相关知识
1 线程 ◼ 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机 制.一个进程可以包含多个线程.同一个程序中的所有线程均会独立执行相同程序,且共 享同一份全局内存 ...
最新文章
- 搭建Zabbix分布式监控
- 近乎于“神”的任正非
- 《深入理解Java虚拟机》-----第3章 垃圾收集器与内存分配策略
- 民生银行马坡数据中心基础设施Uptime Mamp;O运营管理体系建立与实施
- 在宽字节环境下获取EditBox中的CString转换为char[]
- C++中如何使用大整数__int 128
- 我辞掉程序员的工作,体验了半年的自驾游生活
- snort配置文件中的PORT解析
- java h5服务器推送事件_关于H5+中push推送的服务端代码是怎么写的
- 安装 Dynamics AX 2012 Data Migration Framework
- 【Java代码笔记】
- linux ubi 分区,ubi卷重分区及卷创建流程解析
- 美面魔心伊莉丝:会有蜘蛛之神制裁你
- Win10防火墙放行MySQL3306端口
- Centos挂载iscsi存储(浪潮存储)
- 充分使用腾讯云服务器搭建自己的网站
- Version 28 (intended for Android Pie and below) is the last version of the legacy support library
- GIS定位和自定义图标
- 操盘手的灵魂 - 交易纪律
- Oracle:获取数据库系统的当前时间