--找出所有被鎖的物件,定位出哪個回話占用
select l.session_id,o.owner,o.object_namefrom v$locked_object l,dba_objects o
where l.object_id=o.object_id;
--所有導致鎖的session
select t2.username, t2.sid, t2.serial#, t2.logon_time, t2.sql_idfrom v$locked_object t1, v$session t2
where t1.session_id = t2.sid
order by t2.logon_time;
--kill 所有占用資源的會話
alter system kill session 'sid,serial#';
--查詢鎖表的具體語句或者過程
select sql_id, hash_value,a.sql_text from v$sql a where a.sql_id = 'drw7jjgsy0rw1';
--給普通使用者授權,比如訪問v_$session檢視的許可權等
grantselect
on v_$session to hr;
kill不掉的程序
通常有兩種情況是不能kill掉的 一是程序已經成為僵死程序,當它的父程序將它 或將它的父程序kill掉即可在ps輸出看不到了 二是程序正處在核心狀態中,linux程序執行時分核心和使用者兩種狀態,當程序進入核心狀態後,會遮蔽所有訊號,包括sigkil,所以這個時候kill 9也變得無效了。看看是不是...
更優雅的 kill 程序
使用 unix 的時候常常需要 kill 乙個程序,而我們又常常記不住程序的 pid,所有一般首先使用 ps 命令來列印系統中的程序,然後對 ps 得到的資料以程序名進行過濾,提取出相對應的 pid,以該 pid 為引數呼叫 kill 就完成了整個的任務。乙個基礎的示例如下 查詢程序 longyu ...
mysql中kill掉所有鎖表的程序
在資料量大或者查詢特別頻繁的時候,偶爾會出現查詢鎖表的情況,通過show processlist 可以看到存在有locked狀態,現寫了個shell指令碼自動殺死鎖表程序,如下 1 bin bash 23 mysql cmd mysql 4 host 192.168.1.1 5 user root ...