Oracle DatabaseのためのOracle GoldenGate Classic Architectureのアップグレード

ここでは、最小限のアップグレードを実行するための手順を説明します。

始める前に、次の準備情報を必ず確認しておいてください。

ノート:

トリガーベースのDDLキャプチャは21c以降でサポートされなくなったため、ネイティブDDLキャプチャにアップグレードする必要があります。

ノート:

統合キャプチャを使用し、トリガーベースのDDLキャプチャから新しいネイティブDDLキャプチャにアップグレードする場合、要求されるまでDDLトリガーを削除しないでください。Extractでは、REDOのCOMPATIBLEレベルまでDDLをマイニングする必要があります。たとえば、データベースがアップグレードされたときにExtractが1週間遅れている場合、ExtractはネイティブDDLキャプチャにすぐには切り替わりません。以前のREDOの処理がまず行われ、その後、ExtractはネイティブDDLキャプチャに自動的にアップグレードされます。
  1. GGSCIで次のコマンドを使用して、Extractの開始時にリストアが必要になる可能性のある最も古いアーカイブ・ログを判断します。Recovery Checkpointフィールドに、リカバリに必要な最も古いログが表示されます。

    GGSCI> INFO EXTRACT group, SHOWCH

    アップグレード・アクティビティはピーク時間外に実行することをお薦めします。実行時間の長いトランザクションがある場合は、ソース・システムで、Extractを停止した時点で最も古いオープン・トランザクションの最初のレコードがシステムではなくログにあると、新しいExtractが、バインド・リカバリ・チェックポイントではなく通常のリカバリ・チェックポイントから処理を開始することになる場合があります。

    次の2つのオプションがあります。

    • アーカイブを、INFO EXTRACTと表示されているリカバリ・チェックポイントで示されている時点までリストアします。

    • アップグレードしているExtractに適用されるトランザクションで、長時間実行されているものを消去します。これは、トランザクションをスキップするか、コミット済トランザクションとして強制的に証跡に書き込むことで実行します。トランザクションをスキップするとデータが失われる可能性があり、トランザクションを強制的に証跡に書き込むと、トランザクションのロールバック時に、不要なデータが追加される可能性があります。トランザクションのスキップまたは強制を実行するには、次のステップに従います。

      1. GGSCIで、次のコマンドを使用してオープン・トランザクションを表示します。クリーンアップする任意のトランザクションのトランザクションIDを記録します。

        GGSCI> SEND EXTRACT group, SHOWTRANS
      2. SEND EXTRACTコマンドで古いトランザクションをクリーンアップしますが、トランザクションをスキップするにはSKIPTRANSオプションを、コミット済トランザクションとして現在の状態を強制的に証跡に書き込むにはFORCETRANSオプションを使用します。

        GGSCI> SEND EXTRACT group, {SKIPTRANS | FORCETRANS} transaction_ID [THREAD n] [FORCE]
        
      3. 長時間実行されているトランザクションのクリーンアップが終了したら、バインド・リカバリ・チェックポイントを強制します。

        GGSCI> SEND EXTRACT group, BR BRCHECKPOINT IMMEDIATE

        ノート:

        スキップまたは強制されたトランザクションはバインド・リカバリ・チェックポイントからクリーンアップされず、SHOWTRANSが再度発行された場合に表示されるため、強制されたチェックポイントが必要です。これは既知の問題です。SEND EXTRACTの詳細は、『Oracle GoldenGateリファレンス』を参照してください。
  2. (ターゲット・システム) GGSCIで、すべてのReplicatプロセスを停止します。

    GGSCI> STOP REPLICAT group
  3. (ソースおよびターゲット・システム) GGSCIで、ソース・システムとターゲット・システムのManagerを停止します。

    GGSCI> STOP MANAGER
  4. ターゲット・システムのみを更新する場合、またはソース側の前にターゲット側を更新する場合は、必ずSTOPを使用して、すべてのデータ・ポンプ、およびそのターゲット上で実行されている、任意のソースについてターゲットに直接書き込むプライマリExtractを停止します。開始されている静的コレクタがあれば、同様に停止する必要があります。serverプロセスが実行されていないことを確認するには、psgrepなどのプロセスをチェックするシェル・コマンドを使用します。

  5. アウトオブプレース・アップグレードを使用する必要があります。アウトオブプレース・アップグレードでは、アップグレードの実行中に同時に既存のインストールも保持されます。詳細は、Oracle GoldenGateのインストールOracle DatabaseへのOracle GoldenGate Classic ArchitectureのインストールClassic Architectureのパッチ適用を参照してください。

  6. GGSCIまたは管理クライアントで、次の順序に従って、ソース・システムとターゲット・システムのOracle GoldenGateプロセスを開始します。

    GGSCI> START MANAGER
    GGSCI> START EXTRACT group
    GGSCI> START EXTRACT pump
    GGSCI> START REPLICAT group

    ログ・ファイルをリストアする必要がある場合、Extractはリストアが必要なログを示すエラーで異常終了します。ログをそのログまでリストアし、Extractを再起動します。

パラメータ・ファイルのコピーを作成してパラメータを変更する場合は、古いパラメータ・ファイルが格納されていたOracle GoldenGateディレクトリに新しいパラメータ・ファイルを移動し、古いパラメータ・ファイルと同じ名前に変更します。大文字と小文字を区別する場合は、パラメータ・ファイルにNOUSEANSISQLQUOTESを追加するか、convprmユーティリティを実行し、必要に応じて引用符を変換します。詳細は、「文字セット変換を使用している場合のアップグレードの考慮事項」を参照してください。

古いOracle GoldenGateリリースのアップグレードに関する考慮事項

  • チェックポイント表およびハートビート表の変更に対応するには、ハートビート表(ソースおよびターゲット)およびチェックポイント表(ターゲットのみ)をアップグレードすることをお薦めします。オブジェクトに関連する変更がない場合、このコマンドは情報メッセージのみを返します。このステップによって表定義が更新され、Oracle GoldenGate 18c (18.1.0)リリースをサポートする列が追加されます。
    GGSCI> DBLOGIN USERIDALIAS [alias] | 
    GGSCI> UPGRADE CHECKPOINTTABLE [owner.table]

    SQL ServerおよびMySQLの場合、SOURCEDBデータ・ソースをDBLOGINで指定する必要があります。詳細は、DBLOGINコマンドを参照してください。

    チェックポイント表がGLOBALSファイル内のCHECKPOINTTABLEにリストされている名前で作成された場合は、owner.tableを省略できます。チェックポイント表がすでにアップグレードされている場合、このコマンドでそれ以上の更新は実行されません。