oracle 資料表被鎖定解決辦法

2021-06-13 08:38:21 字數 800 閱讀 5821

今天操作oracle資料庫時,更新一張表中的乙個字段值,一直沒有更新成功,後來發現,表被別的使用者鎖定,後來採用下面的方法解決了這個問題!

update ems_csg set device_id = 'csg000000000000001' where name = 'viss_csg'上面的sql語句執行後,表中資料沒有變化,判斷是資料表被鎖定,解決辦法如下:

1、select * from v$locked_object; 查出被鎖定的物件,其中object_id是物件的id,session_id是被鎖定物件的session id;v$locked_object試圖需要system使用者才能訪問

2、select object_name, object_type from dba_objects where object_id = 剛才查出來的object_id;  這樣來查被鎖定這個物件的名字,如果能確定是哪個table被鎖並且要解鎖,則再執行下面一步

3、select sid, serial#, machine, program from v$session where sid =第1步中查出來的session_id;  

4、alter system kill session 'sid,serial#';用來殺死這個會話;以上幾個步驟即能解決物件被鎖定問題。

alter system kill session '24,2499';

alter system kill session '46,4386';

總結:為避免死鎖,在執行新增、刪除、修改操作後,要養成commit的習慣!

解決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 select b.username,b.sid,b.s...

Oracle使用者被鎖定解決方法

1 用dba角色的使用者登陸,進行解鎖,先設定具體時間格式,以便檢視具體時間 sql alter session set nls date format yyyy mm dd hh24 mi ss session altered.2 檢視具體的被鎖時間 sql select username,loc...

Oracle使用者被鎖定解決方法

1 用dba角色的使用者登陸,進行解鎖,先設定具體時間格式,以便檢視具體時間 sql alter session set nls date format yyyy mm dd hh24 mi ss session altered.2 檢視具體的被鎖時間 sql select username,loc...