背景
- 在操作Oracle時,多人同時操作oracle數據庫的同一張表的時候,經常會造成鎖表現象,這時需要手動進行解鎖。
步驟
- 以dba身份登錄Oracle數據庫(否則用戶缺少殺掉進程權限,需要給用戶分配權限)
- sqlplus / as sysdba,如下圖
- 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#';
