首页数据库Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题

Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题

时间2024-02-28 17:10:03发布访客分类数据库浏览443
导读:收集整理的这篇文章主要介绍了Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题,觉得挺不错的,现在分享给大家,也给大家做个参考。 现象tomcat...
收集整理的这篇文章主要介绍了Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题,觉得挺不错的,现在分享给大家,也给大家做个参考。

现象

tomcat错误日志断断续续报ORA-00903: invalid table name,并无具体SQL与表名,需要排查哪段代码写入了无效表名,
可以通过oracle提供的errorstack追踪报错SQL。
由于生产数据无法取出,以下皆为测试环境测试还原生产错误。

errorstack简介

设置errorstack,在发生特定的ORA错误时会记录发生问题的会话,语句以及各个进程的trace文件,
在alert日志中有记录错误记录的trace文件位置,也可以给单独会话开启errorstack,追踪会话报错信息,可以通过
下面两个方法开启:

/* level 0 仅转储错误堆栈
/* level 1 转储错误堆栈和函数调用堆栈
/* level 2 Level 1 + PRocessstate
/* level 3 Level 2 + Context area (显示所有cursors,着重显示当前cursor)

(1)alter session/System

alter session/system set events 'error_number>  trace name errorstack level 3';
/* error_number为ORA错误后编号。

(2)oradebug

/* 使用Oradebug需要用户具有sysdba权限
SQL>  oradebug setospid/setmypid/setorapid pid> ;  
SQL>  oradebug dump errorstack 3

可以通过下面方法查看当前系统开启errorstack状态:

SQL>  set serveroutput on
SQL>  oradebug setmypid
SQL>  oradebug eventdump session/system;

追踪

SQL>  alter system set events '903 trace name errorstack level 3';
alter日志:

Tue Jun 09 14:23:44 2020
OS Pid: 10855 executed alter system set events '903 trace name errorstack level 3'

追踪结果

alert日志信息:

alert日志信息:

Tue Jun 09 14:28:04 2020
Errors in file /u01/app/oracle/diag/rdbms/honor/honor1/trace/honor1_ora_7205.trc:
ORA-00903: 表名无效
Tue Jun 09 14:28:06 2020
Dumping diagnostic data in directory=[cdmp_20200609142806], requested by (instance=1, osid=7205), summary=[abnormal process termination].

查看对应trc追踪文件:

*** 2020-06-09 14:28:04.303
*** SESSION ID:(26.661) 2020-06-09 14:28:04.303
*** CLIENT ID:() 2020-06-09 14:28:04.303
*** SERVICE NAME:(honor) 2020-06-09 14:28:04.303
*** mODULE NAME:(SQL*Plus) 2020-06-09 14:28:04.303
*** ACTION NAME:() 2020-06-09 14:28:04.303
dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=3, mask=0x0)
----- Error Stack Dump -----
ORA-00903: è¡¨å90> 8d> æ97>  æ95> 88>
----- current SQL Statement for this session (sql_id=0vaqwchF1y3fq) -----
insert into null values(1)

找到具体sql,拿给开发人员,修改相关逻辑,错误修复。

关闭errorstack

SQL > alter system set events '903 trace name errorstack off';

总结

到此这篇关于Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的文章就介绍到这了,更多相关oracle ORA-00903 无效表名内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • oracle执行cmd的实现方法
  • Oracle数据库常用命令整理(实用方法)
  • Oracle按身份证号得到省市、性别、年龄的示例代码
  • Windows10安装Oracle19c数据库详细记录(图文详解)
  • Shell脚本连接oracle数据库的实现代码
  • Oracle数据库服务器修改操作系统时间的注意事项详解
  • Linux一键部署oracle安装环境脚本(推荐)
  • CMD操作oracle数据导库过程图解

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题
本文地址: https://pptw.com/jishu/631707.html
Windows10安装Oracle19c数据库详细记录(图文详解) Maven中央仓库正式成为Oracle官方JDBC驱动程序组件分发中心(推荐)

游客 回复需填写必要信息