DB2 ログ内の既知の時点からキャプチャー・プログラムを始動する

キャプチャー・プログラムが、既知の時点から DB2 のリカバリー・ログを再読み取りし、すでにキャプチャーされ適用されたログ・レコードを再処理するように指示することができます。

このタスクについて

重要: この手順は、ターゲット表がユーザー・コピーである場合にのみ使用すべきです。

手順

  1. キャプチャー・プログラムとアプライ・プログラムを停止します。
  2. 次の SQL ステートメントに示すように、キャプチャーの RETENTION_LIMIT および LAG_LIMIT 値を最大に設定します。
    UPDATE ASN.IBMSNAP_CAPPARMS SET RETENTION_LIMIT=99999,LAG_LIMIT=99999; 
  3. IBMSNAP_UOW、CD、IBMSNAP_REGISTER、および IBMSNAP_PRUNCNTL 表の SYNCHPOINT 値が、キャプチャーを開始したい LSN 値よりも高い場合、SQL を使用してトランザクションを再キャプチャーし始める時点に値を設定してください。 続く例では、00000006F5638E60000 がログ・シーケンス番号、2009-09-05-09.55.43.316970 が、ログの読み取りを開始するようキャプチャー・プログラムを戻す時点のタイム・スタンプです。
    UPDATE ASN.IBMSNAP_REGISTER SET SYNCHPOINT = x'00000006F5638E600000',
    SYNCHTIME=TIMESTAMP('2009-05-05-09.55.43.316970');
    
    UPDATE ASN.IBMSNAP_REGISTER SET CD_OLD_SYNCHPOINT=x'00000006F5638E600000',
    CD_NEW_SYNCHPOINT=x'00000006F5638E600000',
    CCD_OLD_SYNCHPOINT=x'00000006F5638E600000'
    WHERE GLOBAL_RECORD='N';
    
    UPDATE ASN.IBMSNAP_SUBS_SET SET
    LASTRUN=TIMESTAMP('2009-09-05-09.55.43.316970'),
    LASTSUCCESS=TIMESTAMP('2009-05-05-09.55.43.316970'), 
    SYNCHPOINT=x'00000006F5638E600000',
    SYNCHTIME=TIMESTAMP('2009-05-05-09.55.43.316970')
    WHERE WHOS_ON_FIRST='S' AND SET_NAME='BACK1';
    
    UPDATE ASN.IBMSNAP_PRUNCNTL SET SYNCHPOINT =x'00000006F5638E600000',
    SYNCHTIME=TIMESTAMP('2009-05-05-09.55.43.316970');
    
    UPDATE ASN.IBMSNAP_PRUNE_SET SET SYNCHPOINT =x'00000006F5638E600000',
    SYNCHTIME=TIMESTAMP('2009-05-05-09.55.43.316970');
    
    DELETE FROM ASN.IBMSNAP_UOW;
    DELETE FROM ASN.IBMSNAP_RESTART;
    
    INSERT INTO ASN.IBMSNAP_RESTART (MAX_COMMITSEQ, MIN_INFLIGHTSEQ,
    MAX_COMMIT_TIME,CURR_COMMIT_TIME,CAPTURE_FIRST_SEQ)
    values (x'00000000000000000000',x'00000006F5638E600000',
    '2009-05-05-09.55.43.316970','2009-05-05-09.55.43.316970',
    x'00000006F5638E600000'); 
  4. キャプチャー・プログラムを WARMNS モードで始動し、アプライ・プログラムは通常の始動パラメーターを使用して始動してください。