sql – 如何解决ORA-02049和一般锁定问题与Oracle

我偶尔得到ORA-02049进行一些长期运行和/或密集型交易.似乎没有这样的模式,但它发生在一个简单的INSERT上.

我不知道如何获取任何信息或Oracle,但是必须有办法吗?登录锁定或至少一种查看当前锁的方式?

解决方法

一种可能的方法是将distributed_lock_timeout的INIT.ORA参数增加到更大的值.这样就可以让你更长的时间观察v $lock表,因为锁会持续更长时间.

为了实现自动化,您也可以

>每5-10秒运行一次sql作业,将v $lock或sandos给出的查询的值记录到表中,然后分析它以查看哪个会话导致锁定.
>运行STATSPACK或AWR报告.被锁定的会话应该以高的时间出现,因此可以被识别.

v $session还有3个更多的列blocking_instance,blocking_session,blocking_session_status可以添加到上面的查询中,以给出什么是锁定的图片.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...