PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
2348 | 98/07/13 16:50:18 | RE:RE:RE:RE:RE:RE:PB5.0.01: ORACLEの行ロック解除について教えて下さい。 By ko |
2316 | 98/07/10 12:13:59 | RE:RE:RE:RE:RE:PB5.0.01: ORACLEの行ロック解除について教えて下さい。 By y_yanagihara |
2267 | 98/07/07 17:41:48 | RE:RE:RE:RE:PB5.0.01: ORACLEの行ロック解除について教えて下さい。 By ko |
2251 | 98/07/06 14:23:52 | RE:RE:RE:PB5.0.01: ORACLEの行ロック解除について教えて下さい。 By y_yanagihara |
2250 | 98/07/06 11:56:15 | RE:RE:PB5.0.01: ORACLEの行ロック解除について教えて下さい。 By ko |
2247 | 98/07/06 08:42:24 | RE:PB5.0.01: ORACLEの行ロック解除について教えて下さい。 By ふくちゃん |
2243 | 98/07/04 13:28:37 | PB5.0.01: ORACLEの行ロック解除について教えて下さい。 By ko |
カテゴリ:旧電子会議室
日付:1998年07月06日 14:23 発信者:y_yanagihara
題名:RE:RE:RE:PB5.0.01: ORACLEの行ロック解除について教えて下さい。
>>こんにちは。
>>下のような方法で解除はできますがこれを使えばひょっとすると何とかなるかもしれません。
>>
>>SYSTEMのテーブルでV$SESSIONというテーブルに現在データベースに
>>接続中のユーザの情報が書かれています。
>>そこでハングアップして落ちたマシーン(ここの値取得が難しそうですが・・・)のネットワークでの
>>USER_IDがOsuserというカラム上にあるはずなのでその行を調べます。
>>2行以上ある場合はSchemanameというカラムに接続データベースのユーザ名
>>が書かれているので参照して一行に絞り込みます。
>> 該当行が一行に絞り込まれると該当行のSID、SERIAL#(判別フラグのようなものです)を調べ記憶してお
>き
>>ます。。
>>そこでSYSTEMかSYSユーザ(DB)で入り次のコマンドを実行します。。
>>
>>ALTER SYSTEM KILL SESSION \'SID,SERIAL#\';
>>
>>「注意」
>>この時上のコマンドのSID及びSERIAL#に前もって調べた数字を記述します。
>>長長と書きましたが、はずしてたらすいません。
>>
>ありがとうございます。
>
>ところで質問なんですが、どのホスト、どのユーザがロックをかけたのか解らずに、「このテーブルのこの行
>がロックがかかっている!」という情報だけ解っている状況で、そのロックを解除する方法というのはあるの
>でしょうか?
こんいちは。
V$lockテーブルとV$sessionを利用するばいいと思います。
select sid, type, object_name, decode(lmode, 1,\'NULL\', 2,\'行共有\', 3,\'行排他\', 4
,\'共有\', 5,\'共有行排他\', 6,\'排他\', lmode) lmode, request
from v$lock, all_objects
where id1 = object_id and
sid in (select sid from v$process, v$session
where addr = paddr and
osuser is not null);
ここでSIDを特定できれば、可能だと思います。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Oracle SQL*Net 2.3
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.