For example, we have a table named foobar. We need to find the block session.
例えば、テーブル名はfoobarのテーブルにブロックセッションがあります。まずそれを探し出す。
SELECT
object_name,
oracle_username,
s.sid,
s.serial#,
s.logon_time,
sql_address
FROM v$locked_object l,
dba_objects o,
v$session s
WHERE l.OBJECT_ID = o.OBJECT_ID
AND l.SESSION_ID = s.SID
AND object_name = 'foobar'
;
If we find the block session, then we can kill it.ブロックセッションを見つければ、キルことができます。
ALTER SYSTEM kill session 'sid, serial';Simple, is it right?
シンプルでしょうか。
Anyway, we have other samples as below.
When you know what locked your table exactly...
Anyway, we have other samples as below.
When you know what locked your table exactly...
無論、もう一つサンプルがあります。
テーブルがブロックされたことを確実にしているであれば、
select s.sid, s.serial#, s.username, s.osuser, s.machine, s.terminal, s.programIf you dont know who did this.
from v$session s, v$locked_object l, dba_objects o
where s.sid = l.session_id
and l.object_id = o.object_id
and o.owner = 'KDDI2'
and o.object_name = 'm_com_busines_id';
やり方がわからなければ、下記のSQLを実行することも可能です。
select s.sid, s.serial#, s.username, s.osuser, s.machine, s.terminal, s.program, o.object_nameThen also we can go to kill.
from v$session s, v$locked_object l, dba_objects o
where s.sid = l.session_id
and l.object_id = o.object_id;
そして、キルこともできます。
alter system kill session 'session ID, serial';
コメント
コメントを投稿