Oracle Database以外のデータベースのためのOracle GoldenGate Classic Architectureのアップグレード

ExtractとReplicatの両方ではなく、どちらか1つのみをアップグレードする場合でも、アップグレードにはすべてのプロセスが関係します。どのコンポーネントをアップグレードするかに関係なく、すべてのプロセスをアップグレードの適切な順序で停止し、空になるまで証跡を処理する必要があります。

  1. (ソースおよびターゲット・システム)ソース・システムとターゲット・システムの現在のOracle GoldenGateインストール・ディレクトリと、クラスタ内の共有ドライブにインストールしたすべての作業ディレクトリ(該当する場合)をバックアップします。

  2. (必要に応じて、ソースおよびターゲット・システム)それぞれのシステムの新しいディレクトリ(現行のOracle GoldenGateディレクトリではありません)に、Oracle GoldenGateのアップグレード・ビルドを展開します。サブディレクトリは作成しないでください。インストール・ファイルが展開されるまでのステップを完了します。

    ただし、このステップはPostgreSQLには適用されません。

    Oracle GoldenGate for PostgreSQLアップグレードは、現在のOracle GoldenGateバージョンと同じ$OGG_HOMEディレクトリに最新バージョン(アップグレードされるバージョン)をインストールした場合にのみ機能します。

    PostgreSQLの場合、最新バージョン(アップグレードされるバージョン)を別の$OGG_HOMEディレクトリ(21.3)にインストールし、新しい$OGG_HOMEを最新バージョンに再指定すると、Oracle GoldenGateのアップグレードは機能しません。

    PostgreSQLの場合、最新のOracle GoldenGateバイナリ用の現在のバージョン・ディレクトリと同じ$OGG_HOMEを使用します。アップグレードを開始する前に、必ず既存の$OGG_HOMEのバックアップを作成してください。

  3. Oracle GoldenGate構成内のオブジェクト上でDMLとDDLを生成するすべてのユーザー・アクティビティを停止し、データベースに対する未処理のオープン・トランザクションがないことを確認します。

    ソース・システムのSQL Server CDC Extractの場合、データベースのCDCキャプチャ・ジョブを手動で停止します。

  4. (ソース・システム)ソース・システム上のGGSCIで、トランザクション・ログ内に処理するデータが残っていないことを示すYESが表示されるまで、LOGENDオプションを指定してSEND EXTRACTコマンドを発行します。

    ソース・システムのSQL Server CDC Extractの場合、SEND EXTRACT group STATUSを数秒間繰り返し実行して、Extractの現在の読取り位置が更新されていないことをモニターし、現在の読取り位置のLSN値が更新されていないことを確認します。

    GGSCI> SEND EXTRACT group LOGEND

  5. (ソース・システム) GGSCIで、Extractとデータ・ポンプを停止します。

    GGSCI> STOP EXTRACT group

  6. (ターゲット・システム)各ターゲット・システムのGGSCIで、証跡のすべてのデータの処理が完了したことを示す"At EOF"ステータスが表示されるまで、STATUSオプションを指定したSEND REPLICATコマンドを発行します。すべてのReplicatプロセスが"At EOF"を戻すまで、すべてのターゲット・システムでこれを行う必要があります。

    GGSCI> SEND REPLICAT group STATUS

  7. (ターゲット・システム) GGSCIで、すべてのReplicatプロセスを停止します。

    GGSCI> STOP REPLICAT group

  8. (ソース・システムおよびターゲット・システム) GGSCIでソース・システム上とターゲット・システム上のManagerを停止し、GGSCIを閉じます。

    GGSCI> STOP MANAGER

  9. ソースまたはターゲット・データベース、あるいは両方をアップグレードする場合は、そのデータベース用に提示されたアップグレード手順に従って、この時点で実行します。アップグレード後にデータベースを起動しますが、Oracle GoldenGate構成内のオブジェクトに対するトランザクションは許可しないでください。

    MySQLの場合は、Oracle GoldenGate 19c (19.1.0)からのアップグレードであり、データベースがMySQL 5.7なら、変更は必要ありません。ただし、Oracle GoldenGate 19c (19.1.0)からのアップグレードであり、データベースがMySQL 8.0である場合は、次のステップを実行する必要があります。
    1. DDLまたはDMLレプリケーションに関係なく、メタデータすべてのロギングを有効にします(MySQL 8.0以上では必要なため)。メタデータすべてのロギングは、MySQL構成ファイル(Linuxの場合はmy.cnf、Windowsの場合はmy.ini)内でMySQLサーバー変数binlog_row_metadataの値をFULLに設定することで有効化できます。設定を有効にするには、構成ファイルを変更した後、データベース・サービスを再起動する必要があります。

    2. DDLレプリケーションが以前に有効になっていた場合は、DDLアンインストール・スクリプトを実行して古いDDLソリューションを無効にします。

      スクリプト名:

      Windowsの場合: ddl_install.bat

      Linuxの場合: ddl_install.sh

    3. アンインストールするには、次のスクリプトを実行します。

      bash$ ./ddl_install.sh uninstall mysql userid password port

  10. (ソースおよびターゲット・システム)展開したOracle GoldenGateファイルを、新規ディレクトリから、既存のファイルを上書きするソース・システムおよびターゲット・システム上の既存のOracle GoldenGateディレクトリに移動します。

  11. (DB2 for i)引数なしでggos400installを実行します。アップグレードの場合、引数は必要ありません。ただし、ライブラリを変更した場合、古いライブラリは、削除するまでシステムに残ります。

  12. (ソースおよびターゲット・システム) GGSCIを開始します。

  13. (ターゲット・システム。バージョン11.2.1.0.0以前からReplicatをアップグレードする場合のみ)各ターゲット・システムにおいてGGSCIで次のコマンドを発行し、そのシステムのReplicatチェックポイント表をアップグレードします。このステップでは、表定義を更新します。

    GGSCI> DBLOGIN {
            [SOURCEDB data_source] |
            [, database@host:port] |USERID {/ | userid}
            [, PASSWORD password]   
            [algorithm ENCRYPTKEY {keyname | DEFAULT}] |USERIDALIAS alias [DOMAIN domain] |
            [SYSDBA | SQLID sqlid]
            [SESSIONCHARSET character_set]}
    

    GGSCI> UPGRADE CHECKPOINTTABLE [owner.table]

    ノート:

    チェックポイント表がGLOBALSファイルのCHECKPOINTTABLEにリストされている名前で作成された場合は、owner.tableを省略できます。

  14. (SQL Server Oracle GoldenGate Classic Extract 12c (12.3.0.1)以前のソース・システム) DELETE TRANDATAコマンドを有効な表に対して実行し、ハートビート表が存在する場合は削除します(DELETE HEARTBEATTABLE)。次に、表に対してADD TRANDATAを再度実行し、以前使用していた場合はADD HEARTBEATTABLEを実行します。

    GGSCI> DBLOGIN {[SOURCEDB data_source] | |USERID {/ | userid}[, PASSWORD password] |USERIDALIAS alias [DOMAIN domain]
    GGSCI> DELETE TRANDATA schema.tablename
    GGSCI> DELETE HEARTBEATTABLE 
    GGSCI> ADD HEARTBEATTABLE 
    GGSCI> ADD TRANDATA schema.tablename
  15. (ソース・システム上のSQL Server CDC Extract) ADD TRANDATAを以前にそれが有効になっていた任意の表(Oracle GoldenGateハートビート実装を使用している場合は任意のフィルタ表、gg_heartbeat表およびgg_heartbeat_seed表など)に対して再実行します。

    GGSCI> DBLOGIN {[SOURCEDB data_source] | |USERID {/ | userid}[, PASSWORD password] |USERIDALIAS alias [DOMAIN domain]
    GGSCI> ADD TRANDATA schema.tablename
  16. (ターゲット・システム)バージョン11.2.1より前のOracle GoldenGateを実行しているソース・システムからの証跡の受信者であるターゲットのOracle GoldenGateインストールをアップグレードする場合は、SOURCECHARSETパラメータをReplicatに追加し、ソース・データベースの文字セットを指定します。

  17. (ソース・システム)デフォルトでは、アップグレード後、Extractはアップグレード前のバージョンのOracle GoldenGateで引き続き証跡ファイルを書き込みます。アップグレードされた証跡バージョンにExtractで強制的に書き込むには、ExtractでFORMAT RELEASEパラメータを使用するか、新しいバージョンを指定するか、またはかわりに、ExtractのETROLLOVERを実行し、ダウンストリーム・プロセスを手動で再配置して新しい証跡順序で読取りを開始します。

    {EXTTRAIL | RMTTRAIL} file_name FORMAT RELEASE major.minor
  18. パラメータ・ファイルのコピーを作成してパラメータを変更する場合は、古いパラメータ・ファイルが格納されていたOracle GoldenGateディレクトリに新しいパラメータ・ファイルを移動し、古いパラメータ・ファイルと同じ名前を付けます。大文字と小文字を区別する場合は、パラメータ・ファイルにNOUSEANSISQLQUOTESを追加するか、convprmユーティリティを実行し、必要に応じて引用符を変換してください。

  19. ハートビート表の構成が以前に実装されていた場合は、すべてのプロセスを再起動する前にアップグレードします。
    GGSCI> DBLOGIN {[SOURCEDB data_source] | |USERID {/ | userid}[, PASSWORD password]
    |USERIDALIAS alias [DOMAIN domain]
    GGSCI> UPGRADE HEARTBEATTABLE
  20. また、BATCHSQLパラメータを変更して、BATCHESPERQUEUEの値を2倍にする必要もあります。Replicatを起動する前にこれを実行する必要があります。

    ノート:

    Oracle GoldenGateバージョン12.1からそれ以降のバージョンにアップグレードし、INSERTALLRECORDSパラメータを使用する場合は、BATCHSQLパラメータのBYTESPEERQUEUEオプションの値を2倍にすることをお薦めします。たとえば、デフォルト値の20 MBでBYTESPEERQUEUEオプションを使用している場合は、値を40 MBに増やします。ただし、BYTESPEERQUEUEオプションにデフォルト値を使用しない場合は、Oracle GoldenGateバージョン12.1のインストール時に指定された値を2倍にします。
    たとえば:
    BATCHSQL BATCHESPERQUEUE 40000000
  21. ソース・システムのSQL Server CDC Extractの場合、データベースのCDCキャプチャ・ジョブを手動で再起動します。

  22. GGSCIで、次の順序に従って、ソース・システムとターゲット・システムのOracle GoldenGateプロセスを開始します。

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