アンロードログファイルによる回復手順の詳細について説明します。
アンロードログファイルによる回復手順を次の図に示します。
図9-9 アンロードログファイルによる回復手順
アンロードログファイルによる回復手順の詳細を次の表に示します。
「操作内容とコマンド実行例」のコマンド実行例を参照するときは,次のことに注意してください。
表9-13 アンロードログファイルによる回復手順の詳細
項目 | 対象 | 操作内容とコマンド実行例 | 入力と出力 | 確認内容 |
---|---|---|---|---|
手順1: 反映エラー情報ファイルの退避 | 障害回復対象のバックエンドサーバ | 反映エラー情報ファイル中に,どこまで反映が完了したかを示す抽出トランザクション情報が格納されているので退避します。
| - | - |
手順2: 抽出の初期化 | マネージャノード | 抽出の初期化を実行します。抽出の初期化には抽出プリプロセスも含みます。
| - | - |
手順3: 連動回復用バックアップファイル作成(システムログをHiRDBファイルシステムにアンロードしている場合)※1 | 障害回復対象のバックエンドサーバ | 世代順に連動回復用バックアップファイルを作成します。
|
| - |
手順4: logmrgコマンドでアンロードログファイルを分割※2 | 障害回復対象のバックエンドサーバ | logmrgコマンドを実行します。
|
| $HDEPATH/caplogparm_BES名のファイルが作成されていて,かつ作成日付がlogmrgコマンドの実行日付と等しいことを確認します。 |
手順5: 回復情報ファイルにオペランドを指定※3 | 障害回復対象のバックエンドサーバ | $HDEPATH/caplogparm_BES名のファイルに,回復開始位置とHiRDB側のデータ連動中止区間の回復が必要かどうかのオペランドを追加します。
|
| - |
手順6: データ連動回復機能1のセットアップ | 障害回復対象のバックエンドサーバが存在するノード | データ連動回復機能1(トランザクション検索フェーズ)のために,プログラムを入れ替えます。
| - | 「Setup for <hdecapture_tool1> complete.」のメッセージが出力されることを確認します。 |
手順7: データ連動回復機能1の実行 | マネージャノード | 抽出側Datareplicatorの抽出機能を起動します。このとき,必ず抽出機能だけを起動してください。
|
| hdestateコマンドで障害回復対象のバックエンドサーバが存在するノード又は抽出側Datareplicator本体が終了状態になるまで監視します。終了後の手順を次に示します。
|
手順8: データ連動回復機能2のセットアップ※4※5 | 障害回復対象のバックエンドサーバが存在するノード | データ連動回復機能2(抽出キュー作成フェーズ)のために,プログラムを入れ替えます。
| - | 「Setup for <hdecapture_tool2> complete.」のメッセージが出力されることを確認します。 |
手順9: データ連動回復機能2の実行 | マネージャノード | 抽出側Datareplicatorの抽出機能を起動します。このとき,必ず抽出機能だけを起動してください。
|
| hdestateコマンドで障害回復対象のバックエンドサーバが存在するノード又は抽出側Datareplicator本体が終了状態になるまで監視します。終了後の手順を次に示します。
|
手順10: 回復情報ファイルの退避※5 | 障害回復対象のバックエンドサーバ | $HDEPATH/caplogparm_BES名のファイルを別名にします。
| - | 機能のアンインストールを忘れた場合に誤動作しないためにする作業です。 |
手順11: データ連動回復機能2のアンセットアップ | 障害回復対象のバックエンドサーバが存在するノード | unsetup_toolコマンドを実行します。
| - | 「Unsetup for <hdecapture_tool> complete.」のメッセージが出力されることを確認します。 |
手順12: 反映の初期化 | マネージャノード | 反映の初期化をします。
| - | - |
手順13: データ連動回復機能の抽出データの送信 | マネージャノード | 抽出側Datareplicatorの送信機能を起動します。このとき,必ず送信機能だけを起動してください。
| - | 送信機能を起動した後で,hdestateコマンドで送信のキューファイルreadオフセットがキューファイルwriteオフセットに追い付くのを監視します。追い付いたらhdestopコマンドを実行して抽出側Datareplicatorを停止します。 |
手順14: 送信/反映の停止 | マネージャノード | 抽出側送信プロセスと反映プロセスを停止します。
| - | - |
オペランド名 | 区分 | 設定値 | 説明 | |
---|---|---|---|---|
RCVR_START | 06-02より前 | 任意 | 指定できるRCVR_STARTオペランドの数は,4096個までです。
| このオペランドを省略すると,最初に入力するアンロードログファイルの先頭が障害回復の開始位置と仮定されます。 |
06-02以降 | 任意 | 指定できるRCVR_STARTオペランドの数は,4096個までです。
| 「障害回復対象となる送信先識別子」と「障害回復の回復位置を示す抽出トランザクション情報」を送信先ごとに指定します。 このオペランドを省略すると,すべての送信先識別子を回復して,入力アンロードログファイルの先頭を回復開始位置と解釈されます。 | |
RCVR_RPLSTOP | 任意 |
| 障害回復の範囲にHiRDB側の連動中止区間が存在していた場合にこの区間を回復対象とするかどうかを指定します。 このオペランドを省略すると,Nが仮定されます。 |
指定例(下線部が追加したパラメタ)
INPUT = /HiRDBDS/hirdbb/HDE/work/unldlog2_1.unlog,10,UNLDLOG |
出力内容 | 説明 | 対処方法 |
---|---|---|
「N.G(start nothing)」 | アンロードログにトランザクションの開始がないデータが存在します。 | もう1世代前のアンロードログファイルを追加して,手順3から再実行してください。 再実行するときにはres_file_BES名のファイルを削除又は別名で保存してください。 |
「N.G(end nothing)」 | アンロードログにトランザクションの終了がないデータが存在します。 | 抽出対象表を格納するすべてのRDエリアに対する参照閉塞が有効となっているかどうか確認してください。
|
「N.G(rplstop found)」 「N.G(start nothing,rplstop)」 「N.G(end nothing,rplstop)」 | HiRDB側の連動中止区間にわたるトランザクションが存在します。 | この出力はHiRDB側の連動中止区間が回復対象外であることを示します。HiRDB側の連動中止区間を回復対象外とすることで問題なければ,この出力を無視して以降の回復手順を続行してください。 HiRDB側の連動中止区間を回復対象とする場合はRCVR_RPLSTOP=Yを指定した後,手順6から再実行してください。 |
アンロードログファイルによるデータ連動回復の実行でエラーとなった場合,アンロードログファイルによるデータ連動回復固有のエラーはすべてKFRB05009-Eメッセージのエラー情報ファイルに出力されます。メッセージ本文の内容は無視して「function:」の部分に出力される情報でエラーの内容を特定してください。「function:」部分の説明を次の表に示します。
表9-14 KFRB05009-Eメッセージの「function:」部分の内容
「function:」部分の内容 | 説明 | 対処方法 |
---|---|---|
analyze error | $HDEPATH/caplogparm_BES名ファイルの解析でエラーが発生しました。 | $HDEPATH/caplogparm_BES名が存在するかどうか確認し,存在しない場合は手順3※から再実行してください。ファイルが存在するときは,該当するファイル内に追加したオペランドの指定が間違っています。オペランドを修正した後,手順7※から再実行してください。 |
env open_error | 環境変数定義ファイル(hde_toolenv)のオープンでエラーが発生しました。 | 環境変数定義ファイルが$HDEPATH下に作成されているかどうかを確認し,作成されていない場合は作成後に手順7※から再実行してください。 |
inttrn error | 回復ツールの初期化処理でエラーが発生しました。 | このエラーはメモリ不足のときだけ発生します。ほかの稼働中のプログラムを停止させて空きメモリを増やした後,手順7※から再実行してください。 |
open_error | アンロードログ分割ファイルのオープン処理でエラーが発生しました。 | logmrgコマンドによって作成されるアンロードログ分割ファイルが正しく作成されていない可能性があります。手順3※から再実行してください。 |
read_error | アンロードログ分割ファイルの読み込み処理でエラーが発生しました。 | logmrgコマンドによって作成されるアンロードログ分割ファイルが正しく作成されていない可能性があります。手順3※から再実行してください。 |
trnout error | トランザクションリストの出力処理でエラーが発生しました。 | トランザクションリストの出力先ディレクトリの容量が不足した可能性があります。出力先ディレクトリを変更後,手順7※から再実行してください。 |
trnget error | トランザクションリストの入力処理でエラーが発生しました。 | トランザクションリストが正しく作成されていません。手順11※を実行後,手順6※から再実行してください。 |
blk_invalid | アンロードログファイル中に不正なログブロックを検出しました。 | 内部矛盾エラーです。開発元に連絡してください。 |
start point err | 抽出トランザクション情報の指定が間違っています。 | RCVR_STARTオペランドで指定された抽出トランザクション情報が不正又は入力に指定したアンロードログファイルが不足しています。 抽出トランザクション情報指定不正の場合は修正後に手順7※から,アンロードログファイル指定不足の場合は入力とするアンロードログファイルを追加して手順3※から再実行してください。 |
seq_invalid | アンロードログファイル中のログブロック出現順序が間違っています。 | logmrgコマンド実行時に指定したアンロードログファイル,又は連動回復用バックアップファイルの順序が不正(ログ出力日付順に昇順となっていない)である可能性があります。入力とするアンロードログファイル,又は連動回復用バックアップファイルの指定順序を確認して,手順3※から再実行してください。 |
param len error | 環境変数のTOOL_OUTPUT_DIRに指定したディレクトリパス名の長さが間違っています。 | 指定値を修正後,手順7※から再実行してください。 |
remain trnentry | データ連動回復機能1で作成したトランザクションリストと,データ連動回復機能2で回復したトランザクション数が不一致です。 | 内部矛盾エラーです。開発元に連絡してください。 |