Top/Oracle/データベースロック時の開放

Oracle/データベースロック時の開放 のバックアップソース(No.1)

//Oracle/データベースロック時の開放
*データベースがロックした場合の処置 [#ya563583]
データベースがロックした場合、ロックを引き起こした犯人であるセッションを切断することで、データベース自体を再起動しなくても復旧できる場合が多いです。

*セッション切断の方法 [#y0672f26]

+SQL*PLUSで、該当のデータベースに接続します。
ALTER SYSTEM権限が必要なので、「system/manager」ユーザでログインします。
+V$LOCKデータディクショナリから、ロックしているセッションを突き止めます。
 SELECT SID,TYPE,LMODE,REQUEST,CTIME 
 FROM V$LOCK 
 WHERE TYPE IN ('TX','TM')
 ;
 (実行結果)
        SID TY      LMODE    REQUEST      CTIME
 ---------- -- ---------- ---------- ----------
        140 TX          6          0      17573
        140 TM          3          0      17568
        140 TM          3          0      17573
 SIDはセッションID、CTIMEはロック時間(秒)を示します。
+次に、V$SESSIONデータディクショナリから、ロックしているセッションのシリアルNo.を突き止めます。
 SELECT SADDR,SID,SERIAL#,USERNAME,PROGRAM 
 FROM V$SESSION 
 WHERE SID = ANY(SELECT SID FROM V$LOCK WHERE TYPE IN ('TX','TM'))
 ;
 (実行結果)
 SADDR           SID    SERIAL# USERNAME
 -------- ---------- ---------- ------------------------------
 PROGRAM
 ----------------------------------------------------------------
 37DBA190        140       5688 SMS
 JDBC Thin Client
+最後に、ALTER SYSTEM KILLコマンドで、ロックしているセッションを切断します。
 (基本文法)
 ALTER SYSTEM KILL SESSION 'sid,serial#'
 (例)
 ALTER SYSTEM KILL SESSION '140,5688';
 (実行結果)
 SQL> ALTER SYSTEM KILL SESSION '140,5688';
 
 システムが変更されました。
 
**コメント [#m23a343e]
#comment

ページ新規作成

新しいページはこちらから投稿できます。

TOP