3.12.3 アンロードログファイルの並び替え(時系列リストの作成)
時系列リストを作成し,「最初に指定するアンロードログファイルの情報取得(バックアップ取得時)」で記録したアンロードログファイルから,「最後に指定するアンロードログファイルの情報取得(データベース回復時)」で作成したアンロードログファイルまでを時系列に並び替えます。データベースを回復するときにこのリストを参照して,pdrstrコマンドの-lオプションにアンロードログファイルを時系列に指定してください。
- 〈この項の構成〉
(1) 自動ログアンロード機能を使用している場合
自動ログアンロード機能を使用している場合の並び替え手順を次に示します。
- 〈手順〉
-
-
pdlogatul -d sys -iコマンドを実行して,自動ログアンロード機能が動作していることを確認します。HiRDB/パラレルサーバの場合は,回復対象の全サーバについて確認してください。動作していない場合,pdlogatul -bコマンドで自動ログアンロード機能を再開始してください。
-
pdlogls -d sysコマンドでシステムログファイルの状態を確認します。アンロード待ち状態のシステムログファイルがあれば,アンロード待ち状態のシステムログファイルがなくなるまで待ってください。
-
「最初に指定するアンロードログファイルの情報取得(バックアップ取得時)」で記録した「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。
-
回復対象となるHiRDBサーバごとにすべてのアンロードログファイルの昇順の時系列リストを作成します。
アンロードログファイル名は次に示す形式に従って決められているため,アンロードログファイル作成ディレクトリ内のアンロードログファイルは時系列に並んでいます。
サーバ名_サーバランIDと世代番号※_ファイルグループ名
注※
世代番号は下4けただけであり,4けたに満たない場合は,世代番号の値が4けたになるように左側に0が入った値になります。
アンロードログファイルの時系列リストの作成方法を次の図に示します。
図3‒14 アンロードログファイルの時系列リストの作成方法 〔説明〕
アンロードログファイル作成ディレクトリ内のファイル一覧をそのままアンロードログファイルの時系列リストに追加してください。アンロードログファイル作成ディレクトリが二つ以上の場合,ファイル名を比べて時系列に並び替えてください。
- 注意事項
-
4.で作成した時系列リストで,世代番号が0000からffffになると,アンロードログファイルが時系列に並びません。この場合,サーバランIDが同じで世代番号が0000から通番になるファイルをサーバランIDが同じで世代番号がffffのファイルの下に移動してください。アンロードログファイルが時系列に並ばない例を次に示します。
- ●アンロードログファイル作成ディレクトリ内のファイル一覧
bes1_3a765d820000_logfg04 ← 0000がある bes1_3a765d820001_logfg01 bes1_3a765d820002_logfg02 bes1_3a765d82fffe_logfg02 bes1_3a765d82ffff_logfg03
この場合,アンロードログファイルの作成順序は次のとおりになります。この順にアンロードログファイルの時系列リストを作成してください。
-
bes1_3a765d82fffe_logfg02
-
bes1_3a765d82ffff_logfg03
-
bes1_3a765d820000_logfg04
-
bes1_3a765d820001_logfg01
-
bes1_3a765d820002_logfg02
-
昇順に並べた時系列リストから,3.で確認したアンロードログファイルを先頭とする昇順リストを抽出します。ここで抽出した昇順リストがデータベース回復時に指定するアンロードログファイルの指定順序となります。
-
(2) 自動ログアンロード機能を使用していない場合
自動ログアンロード機能を使用していない場合の並び替え手順を次に示します。
- 〈手順〉
-
-
アンロード待ち状態のシステムログファイルがないことを確認します。アンロード待ち状態のシステムログファイルがある場合,pdlogunldコマンドでアンロードします。
-
「最初に指定するアンロードログファイルの情報取得(バックアップ取得時)」で記録した「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。
-
すべてのアンロードログファイルに対してpdlogucatコマンドを実行し,各アンロードログファイルの「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。
-
3.で確認した「サーバ名」,「サーバランID」,「世代番号」,「ログファイルグループ名」をキーにして昇順に並び替え,時系列リストを作成します。
-
4.で作成した昇順の時系列リストから,2.で確認したアンロードログファイルを先頭とする昇順リストを抽出します。ここで抽出した昇順リストがデータベース回復時に指定するアンロードログファイルの指定順序となります。
-
(3) 注意事項
アンロードログファイルの時系列リストでアンロードログファイルの抜けに注意してください。サーバランIDが同じ場合は世代番号が1ずつ加算されるか,又は同一世代番号で異なるファイルグループ名称になっています。
これに該当しない場合はアンロードログファイルが抜けている可能性があります。該当するアンロードログファイルがない場合,抜けている分のシステムログファイルを再度アンロードする必要があります。システムログファイルが既に上書きされていてアンロードログファイルを作成できない場合は,最新の同期点にデータベースを回復できません。この場合,データベースをバックアップ取得時点にしか回復できません。
(4) 運用例1
自動ログアンロード機能を使用している場合,HiRDBの稼働中にバックエンドサーバ(bes1)を回復するときの例を示します。なお,ここでは「最後に指定するアンロードログファイルの情報取得(データベース回復時)」の手順も合わせて説明します。
-
pdlogswap -d sysコマンドを実行して,現用のシステムログファイルをスワップします。
pdlogswap -d sys -s bes1 -w
-
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と表示されていることから,自動ログアンロード機能が動作中であると確認できます。
-
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 --------
上記結果から,アンロードログファイルの作成が完了したことが確認できます。
-
バックアップ時に取得した最初に指定するアンロードログファイルの情報から,「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。この例での情報を次に示します。
-
サーバ名:bes1
-
ファイルグループ名:logfg05
-
サーバランID:3a765d82
-
世代番号:17
このことから,最初に指定するアンロードログファイルはbes1_3a765d820017_logfg05です。
-
-
昇順の時系列リストを作成します。
まず,アンロードログファイル作成ディレクトリ内のファイル一覧を作成します。ここでは,アンロードログファイル作成ディレクトリが二つあるとします。
最初に指定するアンロードログファイルがbes1_3a765d820017_logfg05なので,bes1_3a765d820017_logfg05があるアンロードログファイル作成ディレクトリ1のファイル一覧からbes1_3a765d820017_logfg05より前の世代番号のファイル名を削除します。
二つのアンロードログファイル作成ディレクトリのファイル一覧を昇順に並び替えてから,一つの時系列リストを作成します。
-
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)を回復するときの例を示します。
-
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以外はアンロードが完了していることが確認できます。
-
HiRDBが再開始していない場合,自動ログアンロード機能でアンロードできないため,-fオプション指定でpdlogunld -d sysコマンドを実行して,手動でlogfg04をアンロードします。
pdlogunld -d sys -s dic -g logfg04 -o /unload_dir2/dic_unload_logfg04 -f
-
pdstart -rコマンドでHiRDBを開始します。
pdstart -r
-
バックアップ時に取得した最初に指定するアンロードログファイルの情報から,「サーバ名」,「サーバランID」,「ログファイルグループ名」,及び「世代番号」を確認します。この例での情報を次に示します。
-
サーバ名:dic
-
ファイルグループ名:logfg01
-
サーバランID:3a7a60ae
-
世代番号:1
このことから,最初に指定するアンロードログファイルはdic_3a7a60ae0001_logfg01です。
-
-
時系列リストを作成し,昇順に並び替えます。
まず,アンロードログファイル作成ディレクトリ内のファイル一覧を作成します。ここでは,アンロードログファイル作成ディレクトリが二つあるとします。
それぞれのアンロードログファイル作成ディレクトリのファイル一覧の最初のファイルを比べると,アンロードログファイル作成ディレクトリ1のファイルはアンロードログファイル作成ディレクトリ2のファイルより古いため,アンロードログファイル作成ディレクトリ2のファイルだけを使用します。
さらに,2.で手動でアンロードしたファイルを最後に追加して,時系列リストを作成します。
-
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です。