サンプル集 |
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■other |
Linuxコマンド |
用語集 |
debian メモ |
apache2 メモ |
MySQL メモ |
Oracle メモ |
HOME |
Oracleでロックが発生した場合の解除手順です。
◆環境OS | Windows Server 2012 R2 Datacenter 64bit |
---|---|
Oracle | 12c Release 12.1.0.1.0 64bit |
SQL*Plus | 11.2.0.3.0 64bit |
ロックが発生しているか調べます。
SQL> select sid, serial# from v$session where sid in (select sid from v
$lock where type in ('TM', 'TX'));
SID SERIAL#
---- --------
98 59671
42 38777
69 54833
$lock where type in ('TM', 'TX'));
SID SERIAL#
---- --------
98 59671
42 38777
69 54833
ロックが3つ発生しています。
ロックが発生しているセッションをkillします。
SQL> alter system kill session '98, 59671';
SQL> alter system kill session '42, 38777';
SQL> alter system kill session '69, 54833';
SQL> alter system kill session '42, 38777';
SQL> alter system kill session '69, 54833';
SQL文まで確認したい場合、v$sqltextをjoinします。
SQL> SELECT vs.SID, vs.SERIAL#, vt.sql_text FROM V$SESSION
JOIN v$sqltext vt
ON vs.sql_address = vt.address
AND vs.sql_hash_value = vt.hash_value
WHERE vs.SID IN (
SELECT SID FROM V$LOCK
WHERE TYPE IN ('TM','TX')
)
JOIN v$sqltext vt
ON vs.sql_address = vt.address
AND vs.sql_hash_value = vt.hash_value
WHERE vs.SID IN (
SELECT SID FROM V$LOCK
WHERE TYPE IN ('TM','TX')
)
Copyright (C) 2017 ymlib.com