Hitachi

ノンストップデータベース HiRDB Version 10 システム運用ガイド(UNIX(R)用)


20.17.6 ユニットの再開始時に必要となるレコード数の求め方

ユニットの再開始時に必要となるシステムログファイルのレコード数を確認してから,ユニットを再開始してください。システムログファイルのレコード数が不足している場合,ユニットを再開始できません。

〈この項の構成〉

(1) 必要となるレコード数を求める計算式

ユニットの再開始時に必要となるシステムログファイルのレコード数は,次に示す計算式から求められます。システムログファイルを二重化している場合は,A系,B系の両方で計算式から求めたレコード数が必要になります。

ユニットの再開始時に必要となるレコード数=A×B+C

A:ユニットの再開始時に入力情報となるシステムログファイルのレコード数

B:次に示すどれかの値
  • HiRDB Text Search Plug-inを使用している場合:3

  • 更新可能なオンライン再編成中にユニットが異常終了した場合:3

  • そのほかの場合:2

C:次に示すどちらかの値
  • 更新可能なオンライン再編成中にユニットが異常終了し,ユニットの再開始後に更新可能なオンライン再編成を継続する場合:A×B+D

    更新可能なオンライン再編成処理中にシステムログファイル不足でユニットが異常終了した場合,ユニットの再開始後に更新可能なオンライン再編成を完了させるために必要となるシステムログファイルの容量です。

  • そのほかの場合:0

D:オンライン再編成上書き禁止状態のシステムログファイルのレコード数

オンライン再編成上書き禁止状態のシステムログファイルのレコード数は,次に示す手順で求められます。

  1. pdlogls d- sysコマンドの実行結果から,現用及びオンライン再編成上書き禁止状態のシステムログファイル(Ex-Status欄の一番右がr)を確認します。

    [図データ]

  2. pdlogls -d sys -eコマンドの実行結果から,1で確認したシステムログファイルのレコード数(Record-countの右側の値)を合計します。

    [図データ]

ユニットの再開始時に実行するデータベースの回復処理でもシステムログが出力されます。この量はデータベースを更新したSQLやHIRDBの運用によって増減します。出力システムログ量が増加してもシステムログファイル不足を解消できるように,必要となるレコード数を上記の計算式で見積もっています。

(2) 必要な容量の求め方の例

ユニットの再開始時に必要となるレコード数の求め方を例題形式で説明します。

例題

バックエンドサーバbes1でシステムログファイル不足が発生し,ユニットが異常終了しました。ユニットの再開始時に必要となるレコード数を求めます。

  • システムログファイルは,すべてオンライン再編成上書き可能状態です。

  • HiRDB Text Search Plug-inは使用していません。

手順
  1. KFPS01229-Iメッセージの出力内容を確認してください。

    KFPS01229-I HRDB UNT1 Next bes1 log file restart point, generation number=3, block
                number=15. restart end point, generation number=6, block number=3a2.
                last acquired syncpoint dump 2012/10/20 00:25:06

    syslogfile又はメッセージログファイルを参照し,ユニットが異常終了したときに出力されたKFPS01229-Iメッセージの出力内容を確認します。KFPS01229-Iメッセージには,ユニットの再開始時に入力情報となるシステムログファイルの情報が出力されます。この例の場合,世代番号3〜6のシステムログファイルが,ユニットの再開始時の入力情報になります。

    注意事項

    次に示す場合,再開始しようとしたユニットが再度異常終了しているため,KFPS01229-Iメッセージが二つ以上出力されています。

    • pd_mode_confオペランドにAUTO又はMANUAL1が指定している

    • システムログファイルの不足によるユニットの異常終了後にpdstartコマンドを実行している

    この場合,ユニットが最初に異常終了したときに出力されたKFPS01229-Iメッセージを確認してください。

  2. pdloglsコマンドを実行して,システムログファイルの情報を確認してください。

    [図データ]

    Gen No.欄にシステムログファイルの世代番号が表示されます。log003〜log006のシステムログファイルが,ユニットの再開始時の入力情報になります。

  3. pdloglsコマンドを実行して,システムログファイルのレコード数を確認してください。

    [図データ]

    log003〜log006のRecord-count欄を参照します。Record-count欄の右側に,各システムログファイルのレコード数が16進数で表示されます。

    16進数のレコード数を10進数に変換して,log003〜log006の合計を求めてください。

    システムログファイル名

    レコード数

    16進数

    10進数

    log003

    4e1c

    19996

    log004

    4e1c

    19996

    log005

    61a4

    24996

    log006

    61a4

    24996

    合計

    89984

  4. ユニットの再開始時に必要なレコード数を求めてください。

    ユニットの再開始時に必要なシステムログファイルのレコード数は,次のようになります。

    89984×2=179968レコード

    ユニットの再開始時に必要なシステムログファイルの容量は,次のようになります。

    179968×4096=737148928バイト

    上記の計算式の4096は,システムログファイルのレコード長です。3の実行結果のRecord-size欄で確認できます。

    なお,上記の計算式で求めた値は,システムログファイルの各系の値です。システムログファイルを二重化している場合は,A系,B系の両方に上記の計算式で求めたレコード数と容量のシステムログファイルが必要になります。