关闭

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

320人阅读 评论(0) 收藏 举报
分类:

压测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 BY sid,

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.addr and s.sid=1146;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:62062次
    • 积分:1187
    • 等级:
    • 排名:千里之外
    • 原创:56篇
    • 转载:20篇
    • 译文:0篇
    • 评论:12条
    最新评论