スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

3.11.3 アンロードログファイルの並び替え(時系列リストの作成

時系列リストを作成し,「3.11.1 最初に指定するアンロードログファイルの情報取得(バックアップ取得時)」で記録したアンロードログファイルから,「3.11.2 最後に指定するアンロードログファイルの情報取得(データベース回復時)」で作成したアンロードログファイルまでを時系列に並び替えます。データベースを回復するときにこのリストを参照して,pdrstrコマンドの-lオプションにアンロードログファイルを時系列に指定してください。

<この項の構成>
(1) 自動ログアンロード機能を使用している場合
(2) 自動ログアンロード機能を使用していない場合
(3) 注意事項
(4) 運用例1
(5) 運用例2
(6) 不要なアンロードログファイルの削除

(1) 自動ログアンロード機能を使用している場合

自動ログアンロード機能を使用している場合の並び替え手順を次に示します。

〈手順〉
  1. pdlogatul -d sys -iコマンドを実行して,自動ログアンロード機能が動作していることを確認します。HiRDB/パラレルサーバの場合は,回復対象の全サーバについて確認してください。動作していない場合,pdlogatul -bコマンドで自動ログアンロード機能を再開始してください。
  2. pdlogls -d sysコマンドでシステムログファイルの状態を確認します。アンロード待ち状態のシステムログファイルがあれば,アンロード待ち状態のシステムログファイルがなくなるまで待ってください。
  3. 3.11.1 最初に指定するアンロードログファイルの情報取得(バックアップ取得時)」で記録した「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。
  4. 回復対象となるHiRDBサーバごとにすべてのアンロードログファイルの昇順の時系列リストを作成します。
    アンロードログファイル名は次に示す形式に従って決められているため,アンロードログファイル作成ディレクトリ内のアンロードログファイルは時系列に並んでいます。
    サーバ名_サーバランIDと世代番号_ファイルグループ名
    注※
    世代番号は下4けただけであり,4けたに満たない場合は,世代番号の値が4けたになるように左側に0が入った値になります。
     
    アンロードログファイルの時系列リストの作成方法を次の図に示します。

    図3-12 アンロードログファイルの時系列リストの作成方法

    [図データ]

    〔説明〕
    アンロードログファイル作成ディレクトリ内のファイル一覧をそのままアンロードログファイルの時系列リストに追加してください。アンロードログファイル作成ディレクトリが二つ以上の場合,ファイル名を比べて時系列に並び替えてください。
    注意
    4.で作成した時系列リストで,世代番号が0000からffffになると,アンロードログファイルが時系列に並びません。この場合,サーバランIDが同じで世代番号が0000から通番になるファイルをサーバランIDが同じで世代番号がffffのファイルの下に移動してください。アンロードログファイルが時系列に並ばない例を次に示します。

    ●アンロードログファイル作成ディレクトリ内のファイル一覧
     
    bes1_3a765d820000_logfg04    ← 0000がある
    bes1_3a765d820001_logfg01
    bes1_3a765d820002_logfg02
    bes1_3a765d82fffe_logfg02
    bes1_3a765d82ffff_logfg03
     
    この場合,アンロードログファイルの作成順序は次のとおりになります。この順にアンロードログファイルの時系列リストを作成してください。
    1. bes1_3a765d82fffe_logfg02
    2. bes1_3a765d82ffff_logfg03
    3. bes1_3a765d820000_logfg04
    4. bes1_3a765d820001_logfg01
    5. bes1_3a765d820002_logfg02
  5. 昇順に並べた時系列リストから,3.で確認したアンロードログファイルを先頭とする昇順リストを抽出します。ここで抽出した昇順リストがデータベース回復時に指定するアンロードログファイルの指定順序となります。

(2) 自動ログアンロード機能を使用していない場合

自動ログアンロード機能を使用していない場合の並び替え手順を次に示します。

〈手順〉
  1. アンロード待ち状態のシステムログファイルがないことを確認します。アンロード待ち状態のシステムログファイルがある場合,pdlogunldコマンドでアンロードします。
  2. 3.11.1 最初に指定するアンロードログファイルの情報取得(バックアップ取得時)」で記録した「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。
  3. すべてのアンロードログファイルに対してpdlogucatコマンドを実行し,各アンロードログファイルの「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。
  4. 3.で確認した「サーバ名」,「サーバランID」,「世代番号」,「ログファイルグループ名」をキーにして昇順に並び替え,時系列リストを作成します。
  5. 4.で作成した昇順の時系列リストから,2.で確認したアンロードログファイルを先頭とする昇順リストを抽出します。ここで抽出した昇順リストがデータベース回復時に指定するアンロードログファイルの指定順序となります。

(3) 注意事項

アンロードログファイルの時系列リストでアンロードログファイルの抜けに注意してください。サーバランIDが同じ場合は世代番号が1ずつ加算されるか,又は同一世代番号で異なるファイルグループ名称になっています。

これに該当しない場合はアンロードログファイルが抜けている可能性があります。該当するアンロードログファイルがない場合,抜けている分のシステムログファイルを再度アンロードする必要があります。システムログファイルが既に上書きされていてアンロードログファイルを作成できない場合は,最新の同期点にデータベースを回復できません。この場合,データベースをバックアップ取得時点にしか回復できません。

(4) 運用例1

自動ログアンロード機能を使用している場合,HiRDBの稼働中にバックエンドサーバ(bes1)を回復するときの例を示します。なお,ここでは「3.11.2 最後に指定するアンロードログファイルの情報取得(データベース回復時)」の手順も合わせて説明します。

  1. pdlogswap -d sysコマンドを実行して,現用のシステムログファイルをスワップします。
     
    pdlogswap -d sys -s bes1 -w
     
  2. pdlogatul -d sys -iコマンドを実行して,自動ログアンロード機能が動作していることを確認します。
     
    pdlogatul -d sys -s bes1 -i
     
    HOSTNAME : dbhost1(101653)
    SERVER_NAME:bes1
    AUTO_LOG_UNLOAD  NOW_UNLOAD_LOG_GROUP  CREATE_DIR
             ACTIVE               logfg05  /unload_dir2
    CURRENT LOG GENERATION INFO.
    LOG_GROUP  GEN_NO.  USER_RUN_ID RUN_ID   UNLOAD_FILE_NAME
    logfg01           7 3a7a60ae    3a7a6090 bes1_3a7a60ae0007_logfg01
     
    AUTO_LOG_UNLOADがACTIVEと表示されていることから,自動ログアンロード機能が動作中であると確認できます。
  3. pdlogls -d sysコマンドでシステムログファイルの状態を確認します。
     
    pdlogls -d sys -s bes1
     
    HOSTNAME : dbhost1(101724)
    Group    Type Server   Gen No.  Status  Run ID    Block No.         Ex-Status
    logfg01  sys  bes1            7 oc-d--u 3a7a0690      43f      43f  --------
    logfg02  sys  bes1            2 os----u 3a7a0690       cb      194  --------
    logfg03  sys  bes1            3 os----u 3a7a0690      195      25e  --------
    logfg04  sys  bes1            4 os----u 3a7a0690      25f      328  --------
    logfg05  sys  bes1            5 osu-b-u 3a7a0690      329      3f2  --------
    logfg06  sys  bes1            6 osu---u 3a7a0690      3f3      43e  --------
     
    上記結果から,logfg05及びlogfg06がアンロード待ち状態で,logfg05のアンロード中であることが確認できます。一定時間待ち,再度pdlogls -d sysコマンドを実行します。
     
    pdlogls -d sys -s bes1
     
    HOSTNAME : dbhost1(103519)
    Group    Type Server   Gen No.  Status  Run ID    Block No.         Ex-Status
    logfg01  sys  bes1            7 oc-d--u 3a7a0690      43f      43f  --------
    logfg02  sys  bes1            2 os----u 3a7a0690       cb      194  --------
    logfg03  sys  bes1            3 os----u 3a7a0690      195      25e  --------
    logfg04  sys  bes1            4 os----u 3a7a0690      25f      328  --------
    logfg05  sys  bes1            5 os----u 3a7a0690      329      3f2  --------
    logfg06  sys  bes1            6 os----u 3a7a0690      3f3      43e  --------
     
    上記結果から,アンロードログファイルの作成が完了したことが確認できます。
  4. バックアップ時に取得した最初に指定するアンロードログファイルの情報から,「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。この例での情報を次に示します。
    • サーバ名:bes1
    • ファイルグループ名:logfg05
    • サーバランID:3a765d82
    • 世代番号:17
    このことから,最初に指定するアンロードログファイルはbes1_3a765d820017_logfg05です。
  5. 昇順の時系列リストを作成します。
    まず,アンロードログファイル作成ディレクトリ内のファイル一覧を作成します。ここでは,アンロードログファイル作成ディレクトリが二つあるとします。

    [図データ]

    最初に指定するアンロードログファイルがbes1_3a765d820017_logfg05なので,bes1_3a765d820017_logfg05があるアンロードログファイル作成ディレクトリ1のファイル一覧からbes1_3a765d820017_logfg05より前の世代番号のファイル名を削除します。

    [図データ]

    二つのアンロードログファイル作成ディレクトリのファイル一覧を昇順に並び替えてから,一つの時系列リストを作成します。

    [図データ]

  6. 5.で作成した時系列リストの順でアンロードログファイルを指定して,pdrstrコマンドを実行します。
     
    pdrstr -m /rdarea/mast_rdarea/mast_rdarea01 -s bes1 -b /pdcopy/backup/bes1bkup01 
    -l /unload_dir1/bes1_3a765d820017_logfg05,/unload_dir1/bes1_3a765d820018_logfg06,
    /unload_dir1/bes1_3a765d820019_logfg01,/unload_dir2/bes1_3a7a06ae0001_logfg01,
    /unload_dir2/bes1_3a7a06ae0002_logfg02,/unload_dir2/bes1_3a7a06ae0003_logfg03,
    /unload_dir2/bes1_3a7a06ae0004_logfg04,/unload_dir2/bes1_3a7a06ae0005_logfg05,
    /unload_dir2/bes1_3a7a06ae0006_logfg06
     
    〔説明〕
    -m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
    -s:回復対象となるサーバ(bes1)を指定します。
    -b:回復に使用するバックアップファイルを指定します。
    -l:回復に使用するアンロードログファイルを時系列に指定します。

(5) 運用例2

自動ログアンロード機能を使用している場合,マスタ用RDエリアに障害が発生し,pdstart -rコマンドでHiRDBを開始してディクショナリサーバ(dic)を回復するときの例を示します。

  1. HiRDBをpdstart -rコマンドで開始する前に,pdlogls -d sysコマンドを実行して,現用のシステムログファイルを確認します。
     
    pdlogls -d sys -s dic
     
    HOSTNAME : dbhost1(103519)
    ***** Off-line Information *****
    Group    Type Server   Gen No.  Status  Run ID    Block No.         Ex-Status
    logfg01  sys  dic             1 cn----u 3a7a6090        1        b  --------
    logfg02  sys  dic             2 cn----u 3a7a6090        c       18  --------
    logfg03  sys  dic             3 cn----u 3a7a6090       19       24  --------
    logfg04  sys  dic             4 cn---cu 3a7a6090       25       2c  --------
    logfg05  sys  dic            11 cn----u 3a765d82      122      130  --------
     
    上記結果から,logfg04以外はアンロードが完了していることが確認できます。
  2. HiRDBが再開始していない場合,自動ログアンロード機能でアンロードできないため,-fオプション指定でpdlogunld -d sysコマンドを実行して,手動でlogfg04をアンロードします。
     
    pdlogunld -d sys -s dic -g logfg04 -o /unload_dir2/dic_unload_logfg04 -f
     
  3. pdstart -rコマンドでHiRDBを開始します。
     
    pdstart -r
     
  4. バックアップ時に取得した最初に指定するアンロードログファイルの情報から,「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。この例での情報を次に示します。
    • サーバ名:dic
    • ファイルグループ名:logfg01
    • サーバランID:3a7a60ae
    • 世代番号:1
    このことから,最初に指定するアンロードログファイルはdic_3a7a60ae0001_logfg01です。
  5. 時系列リストを作成し,昇順に並び替えます。
    まず,アンロードログファイル作成ディレクトリ内のファイル一覧を作成します。ここでは,アンロードログファイル作成ディレクトリが二つあるとします。

    [図データ]

    それぞれのアンロードログファイル作成ディレクトリのファイル一覧の最初のファイルを比べると,アンロードログファイル作成ディレクトリ1のファイルはアンロードログファイル作成ディレクトリ2のファイルより古いため,アンロードログファイル作成ディレクトリ2のファイルだけを使用します。
    さらに,2.で手動でアンロードしたファイルを最後に追加して,時系列リストを作成します。

    [図データ]

  6. 5.で作成した時系列リストの順でアンロードログファイルを指定して,pdrstrコマンドを実行します。
     
    pdrstr -m /rdarea/mast_rdarea/mast_rdarea01 -r RDMASTER -b /pdcopy/backup/dicbkup01
    -l /unload_dir2/dic_3a7a06ae0001_logfg01,/unload_dir2/dic_3a7a06ae0002_logfg02,
    /unload_dir2/dic_3a7a06ae0003_logfg03,/unload_dir2/dic_unload_logfg04
     
    〔説明〕
    -m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
    -r:マスタ用RDエリア名を指定します。
    -b:回復に使用するバックアップファイルを指定します。
    -l:回復に使用するアンロードログファイルを時系列に指定します。

(6) 不要なアンロードログファイルの削除

時系列リストは,不要なアンロードログファイルを特定する場合も使用できます。降順の時系列リストを作成し,最初に指定するアンロードログファイルより古いファイルが不要なアンロードログファイルです。時系列リストの例を次に示します。

[図データ]

〔説明〕
この例では,最初に指定するアンロードログファイルがbes1_3a765d820017_logfg05なので,不要なアンロードログファイルはbes1_3a765d820016_logfg04,bes1_3a765d820015_logfg03,及びbes1_3a765d820014_logfg02です。