1. 程式人生 > >Oracle 表鎖住,殺掉鎖表進程

Oracle 表鎖住,殺掉鎖表進程

objects nbsp name alter inf logon obj info session

背景

  • 在操作Oracle時,多人同時操作oracle數據庫的同一張表的時候,經常會造成鎖表現象,這時需要手動進行解鎖。

步驟

  • 以dba身份登錄Oracle數據庫(否則用戶缺少殺掉進程權限,需要給用戶分配權限)
    • sqlplus / as sysdba,如下圖 技術分享圖片
  • 查看被鎖住的表進程
    • 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#‘;

Oracle 表鎖住,殺掉鎖表進程