eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 断电故障导致 ASM DiskGroup 故障及恢复案例 | Blog首页 | 10g Profile FAILED_LOGIN_ATTEMPTS如何计数? »

使用errorstack跟踪ORA-01438错误

客户系统出现如下ORA-01438错误,提示数据的精度超过允许值,是后台Job调度的任务:
Mon Jul 13 10:27:31 2009
Errors in file /admin/erpdb/bdump/erpdb1_j000_447020.trc:
ORA-12012: error on auto execute of job 22
ORA-01438: value larger than specified precision allowed for this column
ORA-06512: at "ERP.TIMRDU", line 13
ORA-06512: at line 1
跟踪文件中缺省的不会记录具体的SQL、绑定变量等信息,我们可以通过ErrorStack进行后台跟踪,获得更详细的信息,执行如下SQL:
alter system set events='1438 trace name errorstack forever,level 10';
然后可以手工执行以下存储过程,获得跟踪文件,再关闭跟踪:
alter system set events='1438 trace name errorstack off';
在Oracle 10g中,这样的操作会被记录到日志文件中:
Mon Jul 13 10:48:39 2009
OS Pid: 541528 executed alter system set events '1438 trace name Errorstack forever,level 10'
Mon Jul 13 10:56:06 2009
Errors in file /admin/erpdb/udump/erpdb1_ora_267056.trc:
ORA-01438: value larger than specified precision allowed for this column
Mon Jul 13 10:56:08 2009
Trace dumping is performing id=[cdmp_20090713105608]
Mon Jul 13 10:57:15 2009
OS Pid: 541528 executed alter system set events '1438 trace name Errorstack off'
接下来分析获得的跟踪文件,就可以获得SQL文本线索,找到根本问题。

ITPUB上有一则极为经典详细的分析: http://www.itpub.net/thread-956435-1-1.html

-The End-



历史上的今天...
    >> 2012-07-13文章:
    >> 2010-07-13文章:
    >> 2006-07-13文章:
    >> 2005-07-13文章:
           瑞典游记-正章-公司印象
           瑞典游记-正章-初到瑞典
    >> 2004-07-13文章:

无觅

By eygle on 2009-07-13 12:02 | Comments (3) | Case | FAQ | 2336 |

3 Comments

学习一下!

errorstack是非常有用的跟踪诊断方式。

常用,但是总也控制不好取哪个level。


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com