压测xx业务数据库资源大量等待,存在表锁问题,导致数据库无法正常执行解决办法

来源:互联网 发布:郑州富士康网络招聘 编辑:程序博客网 时间:2024/05/18 02:24

压测xxxx业务期间,监控oracle数据库资源大量等待,存在表锁问题及相关sql,如图:


数据库查询详细表锁情况如图:

 

跑xxxx业务操作的时候,数据库无响应,经查询,执行xx表无响应,经查看,存在锁表情况导致。原因是update xx表时候没做commit操作。

解决方法:

①查询表锁详细信息,找到对应的SID,SERIAL#:

SELECT l.session_id sid,

       s.serial#,

       l.locked_mode,

       l.oracle_username,     

       l.os_user_name,

       s.machine,

       s.terminal,

       o.object_name,

       s.logon_time    

FROM v$locked_object l,

       all_objects  o,

       v$session   s      

WHERE l.object_id = o.object_id

AND l.session_id = s.sid

ORDER BYsid,

s.serial#;

 

②杀死xx表锁进程:

alter system kill session  '1146,55092';--解锁,SID,SERIAL#

 

③若锁定的资源很长时间没有被释放,查出对应进程并进入linux服务器杀死该进程:

select spid, osuser, s.program from v$session s,v$process p

where s.paddr=p.addrand s.sid=1146;

0 0
原创粉丝点击