Q キャプチャー・プログラムをウォーム・モードで開始すると、再始動メッセージ内のグローバル再始動情報をオーバーライドして、個別送信キューおよびパーティション・ソース・データベース内の個別パーティションごとに異なる再始動点を指定できます。
始める前に
始める前に
Q キャプチャー・プログラムを開始するユーザー ID には、再始動ファイルを開いて読み取れる許可がなければなりません。
このタスクについて
このタスクについて
個別送信キューまたは個別データ・パーティションの再始動点を指定するには、Q キャプチャー初期化パラメーターを使用して、再始動メッセージ内の再始動情報を、ファイルが提供する情報でオーバーライドします。
パラメーター override_restartq は Q キャプチャーに対して、開始時にある特定の送信キューまたはデータ・パーティションのログの読み取りを開始するポイントを、再始動メッセージだけでなく再始動ファイルでも調べるよう指示します。 ファイルに含まれる再始動情報は、再始動メッセージ内の再始動情報をオーバーライドします。
個々の送信キューまたはデータ・パーティションごとに異なるポイントから Q キャプチャーを開始できることは、以下の状況で役立ちます。
- 別々の送信キューが対応している 1 つ以上のターゲットのデータが、他のターゲットに影響を与えずにリパブリッシュされるように Q キャプチャーを再始動する場合。 1 次サイトが複数のターゲット・サイトに接続するような災害復旧の場合、通常のフォールバック手順では、異なるターゲット・サイトに接続する送信キューごとに失われた変更を再送信するため、複数の異なるポイントから Q キャプチャーを再始動することになります。
- パーティション・データベース環境で、Q キャプチャーによってその再始動メッセージに保存されたポイントとは異なるログ内の既知のポイントから Q キャプチャーを開始する場合、または再始動メッセージが失われたときや壊れたときに Q キャプチャーをウォーム・モードで開始する場合。
- IBM® MQ オブジェクトを保管するファイル・システムが失われた場合、または Q キャプチャー再始動メッセージが誤って削除され、複数の送信キューが使用されている場合は、個々の再始動点から Q キャプチャーを再始動できます。
プロシージャー
1 つ以上の送信キューのログ内の指定ポイントから Q キャプチャーを開始するには、以下のようにします。
手順
- 以下のいずれかを行います。
- 送信キューまたはパーティションのレベルの再始動点を初めて指定する場合は、capture_path パラメーターで指定したディレクトリーに再始動ファイルを作成します。capture_path に何も指定していない場合は、Q キャプチャーが開始されたディレクトリーに再始動ファイルを作成します。 次の命名規則を使用します。
- z/OS®
- capture_server.capture_schema.QCAP.QRESTART Q キャプチャーは、属性 DCB = (RECFM=FB,LRECL=160) でデータ・セットを作成します。 z/OSで複製する場合、ファイルは常に存在します。 これは、キャプチャーの実行中は空で、Q キャプチャーの停止時にデータが取り込まれ、コンテンツは以下の Db2® 非データ共有の例のようになります。
QDECODERL2 0000:0000:0004:75DE:8C7E:0000:0000:0000 0000:0000:0004:75DE:8C7E:0000:0000:0000
QDECODERL1 0000:0000:0004:75DE:8C7E:0000:0000:0000 0000:0000:0004:75DE:8C7E:0000:0000:0000
QDECODERL3 0000:0000:0004:75DE:8C7E:0000:0000:0000 0000:0000:0004:75DE:8C7E:0000:0000:0000
QDECODERXMLL2 0000:0000:0004:75DE:8C7E:0000:0000:0000 0000:0000:0004:75DE:8C7E:0000:0000:0000
QDECODERL4 0000:0000:0004:758B:AC24:0000:0000:0000 0000:0000:0004:758B:AB68:0000:0000:0000
QDECODERXMLL1 0000:0000:0004:75DE:8C7E:0000:0000:0000 0000:0000:0004:75DE:8C7E:0000:0000:0000
QDECODERL5 0000:0000:0004:75CA:EAAD:0000:0000:0000 0000:0000:0004:75CA:FA1C:0000:0000:0000
- Linux®、UNIX、Windows
- db2_instance.capture_server.capture_schema.QCAP.QRESTART
- QCAP.QRESTART ファイルが既に存在する場合は、以下のステップに従ってその内容を更新します。
- 標準出力または Q キャプチャー・ログ・ファイルで通知メッセージ ASN7207I を見ます。このメッセージは、Q キャプチャーが停止直前に出すものです。
このメッセージには、送信キューごとに以下の情報が含まれます。
- キュー名
- 再始動 LSN (未コミットのトランザクションの最小 LSN)
- commitSEQ (正常にコミットされた最後のトランザクション)
- Linux、UNIX、および Windows 上のパーティション・データベースのパーティション番号
以下の例は、 z/OS上の ASN7207I メッセージを示しています。
2020-07-03-16.20.43.215659 <writeSendQRestartInfo> ASN7207I "Q Capture" : "QDECODER" : "WorkerThread" : The contents of the restart queue
override file are as follows: <send_queue_name>, <restart_lsn>, <maxcmtseq>, <partition> (only for partitioned databases):
QDECODERL2 0000:0000:0004:7809:67A6:0000:0000:0000 0000:0000:0004:7809:67A6:0000:0000:0000
QDECODERL1 0000:0000:0004:7809:67A6:0000:0000:0000 0000:0000:0004:7809:67A6:0000:0000:0000
QDECODERL3 0000:0000:0004:7809:67A6:0000:0000:0000 0000:0000:0004:7809:67A6:0000:0000:0000
QDECODERXMLL2 0000:0000:0004:7809:67A6:0000:0000:0000 0000:0000:0004:7809:67A6:0000:0000:0000
QDECODERL4 0000:0000:0004:7809:67A6:0000:0000:0000 0000:0000:0004:7809:67A6:0000:0000:0000
QDECODERXMLL1 0000:0000:0004:7809:67A6:0000:0000:0000 0000:0000:0004:7809:67A6:0000:0000:0000
QDECODERL5 0000:0000:0004:7809:67A6:0000:0000:0000 0000:0000:0004:7809:67A6:0000:0000:0000
- Q キャプチャーに特定のポイントでリカバリー・ログからのトランザクションのキャプチャーを開始させたい送信キューまたはデータ・パーティションごとに、QRESTART ファイルが存在しない場合は、以下の形式で QCAP.QRESTART ファイルに行を入力します。
送信キュー名 |
スペース |
restartLSN |
スペース |
commitSEQ |
スペース |
パーティション (オプション) |
次の例は、データ・パーティション 0 および 1 の 2 つの送信キュー SQ1 および SQ2 用の再始動ファイルの内容を示しています。
SQ1 0000:0000:4F07:634E:0000:0000:0000:0000 0000:0000:4F00:547A:0000:0000:0000:0000 0
SQ2 0000:0000:4FB9:0864:0000:0000:0000:0000 0000:0000:4FB9:0864:0000:0000:0000:0000 1
データ・パーティション情報は、 z/OS や、 Linux、UNIX、および Windows 上の非パーティション・データベースには必要ありません。
- 以下のステップに従って、元に戻すキューの再始動 LSN を見つけます。
- 以下の照会を実行して、該当する受信キュー (コミット LSN) について Q アプライ・サーバーでコミットされた最大 LSN 値を見つけます。
commit_LSN = SELECT RECVQ,HEX(MAX(OLDEST_COMMIT_LSN)) FROM IBMQREP_APPLYMON WHERE RECVQ=’RECVQNAME’;
- 以下の照会を実行して、送信キューを再始動する開始 LSN 値を取得します。
照会はステップ a の commit_LSN 値を使用することに注意してください。
start_LSN = SELECT HEX(MIN(RESTART_SEQ)) FROM IBMQREP.CAPQMON WHERE SENDQ=’SENDQ NAME’ AND
RESTART_MAXCMTSEQ=(SELECT MAX(RESTART_MAXCMTSEQ) FROM IBMQREP.CAPQMON WHERE
SENDQ=’SENDQ NAME’ AND RESTART_MAXCMTSEQ <= commit_LSN);
照会結果は、関連する Q アプライ・サイトでまだ適用されていない可能性がある複数のトランザクションにわたる Q キャプチャー・サイトの特定の送信キューの最小 LSN 値です。
- ステップ b の MIN (RESTART_SEQ) 値を使用して、元に戻すキューの QRESTART ファイル再始動 LSN を更新します。
- startmode= warmns および override_restartq= y を指定して Q キャプチャー・プログラムを開始します。
Q キャプチャーは、初期化時に再始動ファイルを読み取り、ファイル内に情報が存在する送信キューごとに、指定された再始動 LSN でリカバリー・ログの読み取りを開始します。 他の送信キューには、Q キャプチャーは再始動メッセージ内のグローバル再始動情報を使用します。
Q キャプチャーは、始動すると再始動ファイルを消去します。 Q キャプチャーは停止時に、再始動ファイルと標準出力、自身のログ・ファイル、および IBMQREP_CAPTRACE 表に、最新の再始動情報を書き込みます。
注: lsn パラメーターおよび maxcmtseq パラメーターも指定する場合は、 override_restartq= y を指定することはできません。 これらのパラメーターは、個々の送信キューではなく、すべての送信キューのログ内の指定したポイントから Q キャプチャーを開始するのに使用されます。
override_restartq が指定されたウォーム・スタート時、Q キャプチャーは、再始動キューに再始動メッセージが存在するかどうかに応じて、次のプロトコルに従います。
- 再始動メッセージが存在する
- restartLSN および commitSEQ を変更する再始動メッセージ内の各送信キューについて 1 行が、再始動ファイルに含まれていなければなりません。 Q キャプチャーは、再始動メッセージ内の restartLSN および commitSEQ 送信キュー情報を、ファイル内の対応する再始動情報に置き換えます。
- 再始動メッセージが存在しない
- 再始動メッセージにあった各送信キューについて 1 行が、再始動ファイルに含まれていなければなりません。 Q キャプチャーは、再始動ファイル内の再始動情報から再始動メッセージを作成します。
- Q キャプチャーの開始時に、SYSIN ファイルから override_restartq= Y を削除するか、 override_restartq= n を設定します。