历史信息查看请查看个人网页www.zhaibibei.cn 这是一个坚持Oracle,Python原创内容的公众号,欢迎关注
这节讲ERRORSTACK的使用
ERRORSTACK可以用来:
ERRORSTACK可以在system和session层调用
例如我们要诊断ORA - 1652错误
ERRORSTACK只有三个等级,三级为最高
alter system set events '1652 trace name errorstack level 3';
alter session set events '1652 trace name errorstack level 3';
我们也可以使用oradebug命令来调用
这里分析1234进程
sqlplus "/ as sysdba"
oradebug setospid 1234
oradebug unlimit
oradebug dump errorstack 3
我们这里简单的以ORA - 942 table or view does not exist为例
SQL> alter session set events '942 trace name errorstack level 3';
Session altered.
SQL>
SQL> select * from err;
select * from err
*
ERROR at line 1:
ORA-00942: table or view does not exist
trace文件会在user_dump_dest 目录下
主要包含如下几个部分:
主要为Oracle实例的一些信息
这里显示的是失败的SQL
dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=3, mask=0x0)
----- Error Stack Dump -----
----- Current SQL Statement for this session (sql_id=0wjycn5zghkkh) -----
select * from err
这里为一些内存里面的内容,看不懂~
一般为Oracle官方或开发人员分析使用
也可以用来搜索metalink查看相关的bug
这里主要有一些进程相关的信息,Oracle Process id (pid),OS Process Id (ospid) 等
这里语句没有执行成功所有没有执行计划
https://askdba.org/weblog/2008/04/errorstack-oracle-debugging-event/