Compaq OpenVMS
システム管理者マニュアル


前へ 次へ 目次 索引


以下の値に注目します。

今回の監視セッションの結果を以前のセッションの結果と比較します。

セッション 終了数 実行時間別トランザクション数
    0 〜 1 秒 1 〜 2 秒 2 〜 3 秒
6 月 42.13 12.98 28.13 1.02
7 月 38.16 10.35 25.80 2.01
8 月 43.19 13.57 29.15 0.47

ノード BLUE のデータを見るかぎり,性能が低下した兆候は見られません。

27.6 トランザクション・ログのサイズが十分かどうかのチェック

トランザクション性能が低下しているノードが見つかった場合は,そのノードのトランザクション・ログのサイズが十分かどうかを調べる必要があります。

第 27.5 節 では,トランザクション性能の低下を発見する方法を説明しています。

作業方法

  1. トランザクション・ログが置かれているノードにログインする。

  2. LMCP ユーティリティの SHOW LOG/CURRENT コマンドを使用して,トランザクション・ログがストールした回数を調べる。


    $ RUN SYS$SYSTEM:LMCP
    LMCP> SHOW LOG/CURRENT
    


    表示されたチェックポイントと発生したストールの数に注目する。

  3. 5 分後に SHOW LOG/CURRENT コマンドを繰り返し実行する。実行後,チェックポイントとストールの数に再び注目する。

  4. SHOW LOG/CURRENT コマンドからの情報と比較する。
    2 回のチェックでチェックポイントの数が同じ場合は,システムの負荷が大きい時間に同じ作業をもう一度行う。
    チェックポイントの数が増え,さらにストールの回数が1 回以上増えている場合は,トランザクション・ログが小さすぎるといえる。

  5. トランザクション・ログのサイズが小さいときは,そのサイズを大きくする。トランザクション・ログのサイズを変更する方法については, 第 27.7 節 を参照。


ノード BLUE のトランザクション・ログのサイズが不十分かどうかを調べます。

ノード BLUE にログインし,トランザクション・ログがストールした回数を調べます。


$ RUN SYS$SYSTEM:LMCP
LMCP> SHOW LOG/CURRENT
Checkpoint starts/ends            2464/2464
Stall starts/ends                   21/21
Log status: no checkpoint in progress, no stall in progress.

チェックポイントの数は 2,464 で,トランザクションのストール回数は 21 回であることが分かります。

5 分後,SHOW LOG/CURRENT コマンドをもう一度入力します。


LMCP> SHOW LOG/CURRENT
Checkpoint starts/ends            2514/2514 
Stall starts/ends                   28/28 
Log status: no checkpoint in progress, no stall in progress.

チェックポイントの数が増え,さらにトランザクション・ログが現在 28 回ストールしており,ストール回数が 5 分間に 7 回増えていることが分かります。したがって,トランザクション・ログのサイズが不十分であるといえます。

27.7 トランザクション・ログのサイズの変更

トランザクション・ログのサイズが不十分な場合,そのサイズを大きくする必要があります。 第 27.6 節 を参照してください。

作業方法

重要

以下の手順で示すステップのすべてを実行してください。途中のステップを省略すると,データが壊れることがあります。

  1. トランザクション・ログに対応するノードにログインする。

  2. LMCP の SHOW LOG コマンドを使用して,トランザクション・ログが置かれているディレクトリを探す。


    SHOW LOG SYSTEM$ノード.LM$JOURNAL 
    


    ノードは,トランザクション・ログが置かれているノードの名前。

  3. トランザクション・ログをリネームする。


    RENAME ディレクトリ指定 SYSTEM$ノード.LM$JOURNAL 
    ディレクトリ指定 SYSTEM$ ノード .LM$OLD 
    

    ディレクトリ指定 トランザクション・ログを格納するディレクトリの完全指定。
    ノード トランザクション・ログに対応するノードの名前。

  4. ノードをまったくシャットダウンしないで DECdtm サービスを使用しているすべてのソフトウェアを停止できるか。

    可能 次のようにトランザクション・ログを閉じる。

    手順 作業
    a. DECdtm サービスを使用しているすべてのソフトウェアを終了する。
    b. LMCP の CLOSE LOG コマンドを使用してトランザクション・ログを閉じる。
    $ RUN SYS$SYSTEM:LMCP
    
    LMCP> CLOSE LOG


    CLOSE LOG コマンドはトランザクション・ログを閉じてから DECdtm TP_SERVER プロセスを停止する。 DECdtm サービスを使用しているソフトウェアがあると,コマンドは失敗する。
    c. CLOSE LOG コマンドの実行に成功したか。

    成功 TP_SERVER プロセスを再起動する。
    $ @SYS$STARTUP:DECDTM$STARTUP.COM
    
    失敗 30 秒間待ってから手順 4b および 4c を繰り返す。

    不可能 ノードを再ブートしてトランザクション・ログを閉じる。再ブートされたらノードにログインする。

  5. LMCP ユーティリティの CONVERT LOG コマンドを使用して,トランザクション・ログのサイズを変更する。


    CONVERT LOG/SIZE= サイズ SYSTEM$ ノード .LM$OLD 
    ディレクトリ指定 SYSTEM$ ノード .LM$JOURNAL 
    

    サイズ 新しいトランザクション・ログのサイズを示すブロック数。
    ディレクトリ指定 トランザクション・ログを格納するディレクトリの完全指定。
    ノード トランザクション・ログが置かれているノードの名前。

  6. ステップ 4 で DECdtm サービスを使用しているソフトウェアを停止した場合は,そのソフトウェアを再起動する。

  7. 旧トランザクション・ログを削除する。


    DELETE ディレクトリ指定 SYSTEM$ ノード .LM$OLD; 
    

    ディレクトリ指定 旧トランザクション・ログを格納しているディレクトリの完全指定。
    ノード トランザクション・ログが置かれているノードの名前。


この例は,ノード RED のトランザクション・ログのサイズを 6000 ブロックに変更しています。ノード RED は OpenVMS Cluster 内に存在し,そのトランザクション・ログは DISK$LOG2:[LOGFILES] に置かれています。

ノード RED にログインします。RED のトランザクション・ログが置かれているディレクトリを探し,そのトランザクション・ログの名前を変更します。


$ RUN SYS$SYSTEM:LMCP
LMCP> SHOW LOG SYSTEM$RED.LM$JOURNAL
Directory of DISK$LOG2:[LOGFILES] 
 
SYSTEM$RED.LM$JOURNAL;1 
 
Total of 1 file.
LMCP> EXIT
 
$ RENAME DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$JOURNAL -
_$ DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$OLD

DECdtm サービスを使用しているすべてのソフトウェアを終了します。次に,トランザクション・ログを閉じます。


$ RUN SYS$SYSTEM:LMCP
LMCP> CLOSE LOG
Transaction log closed, TP_SERVER process stopped
LMCP> EXIT

TP_SERVER プロセスを再起動します。


$ @ SYS$STARTUP:DECDTM$STARTUP.COM

トランザクション・ログのサイズを変更します。


$ RUN SYS$SYSTEM:LMCP
LMCP> CONVERT LOG/SIZE=6000 DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$OLD -
_LMCP> DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$JOURNAL
Log file DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$JOURNAL;1 created.
Log file DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$OLD converted.
LMCP> EXIT

DECdtm サービスを使用するソフトウェアを再起動します。

旧トランザクション・ログを削除します。


$ DELETE DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$OLD;

27.8 トランザクション・ログの移動

次の場合には,トランザクション・ログを移動します。

作業方法

重要

以下の手順で示すステップのすべてを実行してください。途中のステップを省略すると,データが壊れることがあります。

  1. 第 27.2.2 項 で示したガイドラインに従って,トランザクション・ログの移動先を決定する。ディスクにはトランザクション・ログを格納するのに十分な連続領域が存在する必要がある。

  2. トランザクション・ログが置かれているノードにログインする。

  3. OpenVMS Cluster 環境の場合,トランザクション・ログを移動するディスクが,クラスタ全体でマウントされていることを確認する。

  4. トランザクション・ログの移動先のディレクトリを決定する。必要であれば,トランザクション・ログ専用のディレクトリを作成する。

  5. LMCP の SHOW LOG コマンドを使用して,トランザクション・ログが置かれているディレクトリを探す。


    SHOW LOG SYSTEM$ ノード .LM$JOURNAL 
    


    ノードは,トランザクション・ログが置かれているノードの名前。

  6. トランザクション・ログをリネームする。


    RENAME ディレクトリ指定 SYSTEM$ ノード .LM$JOURNAL 
    ディレクトリ指定 SYSTEM$ ノード .LM$OLD 
    

    ディレクトリ指定 トランザクション・ログを格納するディレクトリの完全指定。
    ノード トランザクション・ログが置かれているノードの名前。

  7. ノードをまったくシャットダウンしないで DECdtm サービスを使用しているすべてのソフトウェアを停止できるか。

    可能 次のようにトランザクション・ログを閉じる。

    手順 作業
    a. DECdtm サービスを使用しているすべてのソフトウェアを終了する。
    b. LMCP の CLOSE LOG コマンドを使用して,トランザクション・ログを閉じる。
    $ RUN SYS$SYSTEM:LMCP
    
    LMCP> CLOSE LOG


    CLOSE LOG コマンドはトランザクション・ログを閉じてから DECdtm TP_SERVER プロセスを終了する。 DECdtm サービスを使用しているソフトウェアが1 つでもあればコマンドは失敗する。
    c. CLOSE LOG コマンドの実行に成功したか。

    成功 TP_SERVER プロセスを再起動する。
    $ @SYS$STARTUP:DECDTM$STARTUP.COM
    
    失敗 30 秒間待ってから手順 7b および 7c を繰りかえす。

    不可能 ノードを再ブートしてトランザクション・ログを閉じる。再ブートされたらノードにログインする。

  8. 論理名 SYS$JOURNAL に,ログの移動先のディレクトリが定義されていることを確認する。定義されていない場合は,SYS$JOURNAL を再定義する。


    DO DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL 
    ディレクトリ指定 [,...] 
    

    ここで,ディレクトリ指定 は 1 つまたは複数のトランザクション・ログを格納するディレクトリの完全ファイル指定である。トランザクション・ログの移動後にトランザクション・ログを格納するすべてのディレクトリを指定する。ディレクトリの順序は自由。
    OpenVMS Cluster 環境では, SYSMAN を使用して SYS$JOURNAL をクラスタ全体で再定義する必要がある。

  9. ステップ 8 で SYS$JOURNAL を再定義した場合は,それに合わせてコマンド・プロシージャSYS$MANAGER:SYLOGICALS.COMの中の SYS$JOURNAL の定義を更新する。
    ノード独自の SYLOGICALS.COM を作成している場合は,そのコマンド・プロシージャのすべてを更新する。

  10. LMCP ユーティリティの CONVERT LOG コマンドを使用して,トランザクション・ログを移動する。


    CONVERT LOG 古いディレクトリ指定 SYSTEM$ ノード .LM$OLD 
    新しいディレクトリ指定 SYSTEM$ ノード .LM$JOURNAL 
    

    古いディレクトリ指定 現在トランザクション・ログを格納しているディレクトリの完全指定。
    ノード トランザクション・ログが置かれているノードの名前。
    新しいディレクトリ指定 トランザクション・ログの移動先のディレクトリの完全指定。

  11. ステップ 7 で DECdtm サービスを使用しているソフトウェアを停止した場合は,そのソフトウェアを再起動する。

  12. 旧トランザクション・ログを削除する。


    DELETE ディレクトリ指定 SYSTEM$ ノード .LM$OLD; 
    

    ディレクトリ指定 トランザクション・ログを格納するディレクトリの完全指定。
    ノード トランザクション・ログが置かれているノードの名前。


この例は,BLUE のトランザクション・ログの移動方法を紹介しています。 BLUE は OpenVMS Cluster 内に存在します。クラスタ・メンバおよびトランザクション・ログの格納場所を次のように想定しています。

ノード ログを格納するディレクトリ
BLUE DISK$LOG1:[LOGFILES]
RED DISK$LOG2:[LOGFILES]

どちらのノードも独自の SYLOGICALS.COM を使用していないものとします。

BLUE のトランザクション・ログの移動先を決定します。この例では,DISK$LOG3:[LOGFILES] に移動します。

ノード BLUE にログインします。次にディスクをクラスタ全体でマウントしてから,トランザクション・ログ用に新しいディレクトリを作成します。


$ MOUNT/CLUSTER/SYSTEM DUA3: LOG3
$ CREATE/DIRECTORY DISK$LOG3:[LOGFILES]

BLUE のトランザクション・ログが置かれているディレクトリを探し,トランザクション・ログの名前を変更します。


$ RUN SYS$SYSTEM:LMCP
LMCP> SHOW LOG SYSTEM$BLUE.LM$JOURNAL
Directory of DISK$LOG1:[LOGFILES] 
 
SYSTEM$BLUE.LM$JOURNAL;1 
 
Total of 1 file.
LMCP> EXIT
$ RENAME DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL -
_$ DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$OLD

DECdtm サービスを使用しているすべてのソフトウェアを終了します。次にトランザクション・ログを閉じます。


$ RUN SYS$SYSTEM:LMCP
LMCP> CLOSE LOG
Transaction log closed, TP_SERVER process stopped
LMCP> EXIT

TP_SERVER プロセスを再起動します。


$ @SYS$STARTUP:DECDTM$STARTUP.COM

SYS$JOURNAL を再定義します。


$ RUN SYS$SYSTEM:SYSMAN
SYSMAN> SET ENVIRONMENT/CLUSTER
SYSMAN> DO DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL -
_SYSMAN> DISK$LOG2:[LOGFILES], DISK$LOG3:[LOGFILES]
SYSMAN> EXIT

コマンド・プロシージャ SYS$MANAGER:SYLOGICALS.COMの SYS$JOURNAL の定義内容を更新します。その後,トランザクション・ログを移動します。


$ RUN SYS$SYSTEM:LMCP
LMCP> CONVERT LOG DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$OLD -
_LMCP> DISK$LOG3:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL
Log file DISK$LOG3:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL;1 created.
Log file DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$OLD converted.
LMCP> EXIT

DECdtm サービスを使用するソフトウェアを再起動します。次に旧トランザクション・ログを削除します。


$ DELETE DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$OLD;


前へ 次へ 目次 索引