Oracle使用——oracle表锁住,杀掉锁表进程

时间:2024-07-15 14:34:20

背景

  • 在操作Oracle时,多人同时操作oracle数据库的同一张表的时候,经常会造成锁表现象,这时需要手动进行解锁。

步骤

  • 以dba身份登录Oracle数据库(否则用户缺少杀掉进程权限,需要给用户分配权限)
    • sqlplus  /  as sysdba,如下图
      Oracle使用——oracle表锁住,杀掉锁表进程
  • 查看被锁住的表进程
    • select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
  • 查找锁表进程的SID和Serial#,因为SID和Serial#共同确定唯一的数据库进程session
    • select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
  • 杀掉进程
    • alter system kill session 'sid,serial#';