查鎖住的表,以及kill程序,Oracle常用語句

2022-06-16 21:36:11 字數 768 閱讀 8252

--找出所有被鎖的物件,定位出哪個回話占用

select l.session_id,o.owner,o.object_name

from 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_id

from 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檢視的許可權等

grant

select

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 ...