9.6.5 アンロードログファイルによるデータ連動回復手順の詳細
アンロードログファイルによる回復手順の詳細について説明します。
(1) アンロードログファイルによる回復手順
アンロードログファイルによる回復手順を次の図に示します。
- 注※
-
抽出の初期化手順には,抽出定義プリプロセスも含みます。初期化した後にhdeprepコマンドで抽出定義のプリプロセスをしてください。抽出定義のプリプロセスをしないと,回復実行エラーになります。
アンロードログファイルによる回復手順の詳細を次の表に示します。
「操作内容とコマンド実行例」のコマンド実行例を参照するときは,次のことに注意してください。
-
コマンドプロンプトの「$」はDatareplicator管理者での操作内容を,「#」はスーパユーザ(Windows版のときはインストールを実行したユーザ)での操作内容を示します。
-
suコマンドは,UNIXのスーパユーザコマンドです。Windows版では実行しません。
-
viコマンドは,UNIXのviエディタを示します。Windows版のときは,メモ帳(notepad.exe)などの任意のエディタを使います。
項目 |
対象 |
操作内容とコマンド実行例 |
入力と出力 |
確認内容 |
---|---|---|---|---|
手順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: 送信/反映の停止 |
マネージャノード |
抽出側送信プロセスと反映プロセスを停止します。
|
− |
− |
- 注※1
-
HiRDBファイルの日付を確認するときは,次のコマンドを実行します。
pdlogcat_s -i バックアップ元HiRDBファイル|grep "First use"
バックアップ元HiRDBファイルとは,連動回復用バックアップファイルの作成元になったHiRDBファイルのことです。「HiRDBファイルシステム領域/HiRDBファイル名」の形式で指定してください。
- 注※2
-
アンロードログファイルの日付を確認するときは,次のコマンドを実行します。
pdlogcat_s -i アンロードログファイル名
コマンド実行結果の「First use」の行に出力される日付が,該当するアンロードログファイルに実際に更新ログを格納した日付を示します。logmrgコマンドに指定するアンロードログファイルは,この日付の古い順に指定してください。
- 注※3
-
追加するパラメタは,次の内容に従って,ファイルの最後に追加してください。
オペランド名
区分
設定値
説明
RCVR_START
06-02より前
任意
指定できるRCVR_STARTオペランドの数は,4096個までです。
- 形式
-
抽出トランザクション情報
-
抽出トランザクション情報
〜〈24けたの16進文字列〉
障害回復の開始位置を示す抽出トランザクション情報を指定します。抽出トランザクション情報の取得方法については,「9.6.4(1)抽出トランザクション情報(回復開始位置)の取得」を参照してください。
このオペランドを省略すると,最初に入力するアンロードログファイルの先頭が障害回復の開始位置と仮定されます。
06-02以降
任意
指定できるRCVR_STARTオペランドの数は,4096個までです。
- 形式
-
{送信先識別子|*}〔,抽出トランザクション情報〕
-
送信先識別子
抽出システム定義に指定した送信先識別子を指定します。送信先識別子に「*」を指定すると,すべての送信先が対象になります。このオペランドに送信先識別子だけを指定したときは,入力アンロードログファイルの先頭を回復開始位置とします。
このオペランドの送信先識別子に「*」を指定したときに,ほかにこのオペランドを指定すると,エラーになります。また,同じ送信先識別子を複数指定すると,エラーになります。
-
抽出トランザクション情報
〜〈24けたの16進文字列〉
抽出トランザクション情報の取得方法については,「9.6.4(1)抽出トランザクション情報(回復開始位置)の取得」を参照してください。
「障害回復対象となる送信先識別子」と「障害回復の回復位置を示す抽出トランザクション情報」を送信先ごとに指定します。
このオペランドを省略すると,すべての送信先識別子を回復して,入力アンロードログファイルの先頭を回復開始位置と解釈されます。
RCVR_RPLSTOP
任意
- Y:
-
HiRDB側の連動中止区間を回復対象とします。
- N又はY以外の値:
-
HiRDB側の連動中止区間を回復対象としません。
障害回復の範囲にHiRDB側の連動中止区間が存在していた場合にこの区間を回復対象とするかどうかを指定します。
このオペランドを省略すると,Nが仮定されます。
- RCVR_STARTオペランドを指定するときの注意
-
マッピングキー更新をしていないときだけ,入力アンロードログファイルを先頭から回復できます(マッピングキー更新をしている場合,回復時の二重更新でデータ連動不整合になる可能性があるため)。また,反映側で二重更新によるエラーが発生するため,回復に先立って反映環境定義のskip_sqlcodeオペランドにキー不在エラー(100)及びキー重複エラー(−803)のSQLCODEを設定しておく必要があります。
指定例(下線部が追加したパラメタ)
INPUT = /HiRDBDS/hirdbb/HDE/work/unldlog2_1.unlog,10,UNLDLOG INPUT = /HiRDBDS/hirdbb/HDE/work/unldlog2_2.unlog,10,UNLDLOG INPUT = /HiRDBDS/hirdbb/HDE/work/unldlog2_3.unlog,10,UNLDLOG BLOCKBUF = 22200 RCVR_START = SND01,3BA6E5800000000000000015 RCVR_RPLSTOP = Y
- 注※4
-
「res_file_BES名」のファイルが存在する場合には,ファイルの内容を確認して,下記に従って対処してください(ファイルはテキストファイルです)。
出力内容
説明
対処方法
「N.G(start nothing)」
アンロードログにトランザクションの開始がないデータが存在します。
もう1世代前のアンロードログファイルを追加して,手順3から再実行してください。
再実行するときにはres_file_BES名のファイルを削除又は別名で保存してください。
「N.G(end nothing)」
アンロードログにトランザクションの終了がないデータが存在します。
抽出対象表を格納するすべてのRDエリアに対する参照閉塞が有効となっているかどうか確認してください。
- 参照閉塞が有効となっている場合:
-
この出力を無視して,以降の回復手順を続行してください。
- 参照閉塞が無効となっている場合:
-
参照閉塞を有効とした後,現時点のカレントまでのアンロードログファイルを追加して,手順3から再実行してください。
再実行するときにはres_file_BES名のファイルを削除又は別名で保存してください。
「N.G(rplstop found)」
「N.G(start nothing,rplstop)」
「N.G(end nothing,rplstop)」
HiRDB側の連動中止区間にわたるトランザクションが存在します。
この出力はHiRDB側の連動中止区間が回復対象外であることを示します。HiRDB側の連動中止区間を回復対象外とすることで問題なければ,この出力を無視して以降の回復手順を続行してください。
HiRDB側の連動中止区間を回復対象とする場合はRCVR_RPLSTOP=Yを指定した後,手順6から再実行してください。
- 注※5
-
障害回復対象のバックエンドサーバが存在するノードにそのほかのバックエンドサーバが存在する構成の場合,これらのバックエンドサーバに対しても回復ツールが実行されることになります。したがって,障害回復対象以外のバックエンドサーバについては回復に必要なファイルが存在しないなどのエラー(上記の※3を参照)となりますが,これらのエラーは無視してください。
(2) アンロードログファイルによるデータ連動回復の実行でエラーとなった場合の対処方法
アンロードログファイルによるデータ連動回復の実行でエラーとなった場合,アンロードログファイルによるデータ連動回復固有のエラーはすべてKFRB05009-Eメッセージのエラー情報ファイルに出力されます。メッセージ本文の内容は無視して「function:」の部分に出力される情報でエラーの内容を特定してください。「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で回復したトランザクション数が不一致です。 |
内部矛盾エラーです。開発元に連絡してください。 |
- 注※
-
「(1)アンロードログファイルによる回復手順」を参照してください。