2

昨晚在我们计划的作业之一的 TRUNCATE TABLE 语句中出现错误“ORA-00054:资源繁忙并获取指定的 NOWAIT”。我需要找出当时哪个进程和 DML 语句持有锁。我知道我们可以检查锁定对象的任何现有会话,但是我们可以从任何 oracle 跟踪文件中找出过去错误的详细信息吗?

4

2 回答 2

2

从理论上讲,您可以通过查看 v$active_session_history 来查找可能会将您的表锁定为独占模式的查询。另一种理论方法是查看在服务器的 bdump/udump 目录中生成的跟踪。最好的方法是通过事件设置为下一次做准备,这将生成跟踪以防出现此特定错误。

于 2013-11-07T12:33:30.163 回答
1

您可能想阅读这篇关于使用 ASH 诊断锁定问题的博客。里面有很好的信息和演示。

于 2013-11-07T20:04:24.830 回答