GoldenGateプロセスに関する既知の問題
GoldenGateプロセスに関連する既知の問題とその回避方法について学習します。
MySQL InnoDBクラスタのGoldenGate取得
MySQL InnoDBクラスタからの取得時にOracle GoldenGateの取得を停止できる既知の問題があります。
GoldenGateは現在、標準のGTIDをサポートしていますが、タグ付きGTIDはサポートされていません。MySQLシェル9.5以降では、MySQL Server 8.3以降で使用すると、特定の管理トランザクションにmysqlshタグが自動的に追加されます。GoldenGateでこれらのタグ付きトランザクションが検出された場合、GTIDベースのExtractは失敗する可能性があります。
これは、MySQL InnoDBクラスタのGTIDベースの取得に影響します。ログ番号およびオフセットを使用したスタンドアロンのMySQL取得は影響を受けません。
この問題を防ぐ方法
クラスタをアップグレードする前に、MySQL Shell 9.4以前を使用してクラスタをアップグレードします。GoldenGate GTIDベースのExtractの使用中に、クラスタ操作にMySQLシェル9.5以降を使用しないでください。
アップグレード開始後のシェル・バージョンの選択が遅すぎます。MySQLシェル9.5以降でタグ付けされたGTIDが追加された場合、Extractは失敗する可能性があります。リカバリには完全な再同期が必要です。
回避方法
MySQL Serverをバージョン8.3以降にアップグレードできますが、MySQLシェル9.4以前を使用して、InnoDBクラスタをインストール、構成またはアップグレードします。これは、GoldenGate Extractを構成する前に行います。
TRANSACTION_GTID_TAG権限の取消しは有効な回避策ではなく、MySQLシェル操作(インスタンスの追加や削除など)が失敗する可能性があります。
セキュリティ・ノート: MySQLシェル9.4には、以降のリリースで対処された脆弱性が含まれています。この一時的な回避策を使用する前に、セキュリティ・チームとのセキュリティへの影響を確認してください。
AWS Glue Data CatalogとAmazon S3バケットを使用したApache Icebergレプリケーション
AWS Glue Data CatalogおよびAWS S3バケットを使用した Apache Icebergレプリケーションでは、次のエラーが発生することがあります。
Cannot find constructor for interface org.apache.iceberg.catalog.Catalog
Missing org.apache.iceberg.aws.glue.GlueCatalog [java.lang.NoClassDefFoundError: software/amazon/awssdk/services/glue/model/AlreadyExistsException]
回避策: gg.classpathを次のように更新します。
gg.classpath=$THIRD_PARTY_DIR/iceberg/*:$THIRD_PARTY_DIR/s3/*:$THIRD_PARTY_DIR/hadoop/*::$THIRD_PARTY_DIR/s3/*:$THIRD_PARTY_DIR/glue/*
TLSセキュリティ・プロトコルの問題
MongoDB、DocumentDBおよびOracle JSON Collection TLSセキュリティ・プロトコル
MongoDB Replicat、DocumentDB ReplicatまたはOracle JSON Collectionの接続が失敗し、レポート・ファイルに次のエラーが表示されます。
Error: Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
回避策:プロパティ・ファイルに次のプロパティを追加し、接続OCIDで<connection_ocid>を更新して、そのままの状態にしてください。
jvm.bootoptions=-Djavax.net.ssl.trustStore=/u02/connections/<connection_ocid>/truststore.pkcs12 -Djavax.net.ssl.trustStorePassword=Welcome123
バグ37518857: OGGDAA GGSスノーフレーク・ストリーミングReplicatエラー
Snowflakeストリーミング・ハンドラがException: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"で失敗する
回避策: Replicatプロパティ・ファイルに次を追加します。
jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true
OCI GoldenGateデプロイメント・コンソールでは、カスタム/デフォルト以外の名前の破棄ファイルを表示できません
デフォルトでは、ファイルを破棄するには、<process-name>.dscという命名規則に従います。名前を変更しないかぎり、すべての破棄ファイルをOCI GoldenGateデプロイメント・コンソールで表示できます。デプロイメント・コンソールには、カスタムの名前付き破棄ファイルは表示されません。
回避策:破棄ファイルにアクセスするには、デプロイメントの詳細ページで診断の収集ツールを使用します。
MongoDB Extractの証跡ファイルをBINARY_JSON_FORMATとともに使用すると、Replicatが失敗します
ReplicatがExtractパラメータ・ファイルでBINARY_JSON_FORMATを指定してMongoDB Extractから生成された証跡ファイルを使用する場合、Replicatは次のエラーで失敗します。
ERROR 2023-08-04 17:13:13.000421 [main] - Unable to decode column 0 : Input length = 1
java.nio.charset.MalformedInputException: Input length = 1 at
java.nio.charset.CoderResult.throwException(CoderResult.java:281) ~[?:1.8.0_311]at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:816) ~[?:1.8.0_311] at
oracle.goldengate.datasource.UserExitDataSource.createColumnValue(UserExitDataSource.java:1106)
[ggdbutil-21.9.0.0.3.001.jar:21.9.0.0.3.001] Exception in thread "main"
oracle.goldengate.util.GGException: Unable to decode column 0 : Input length = 1 at
oracle.goldengate.datasource.UserExitDataSource.createColumnValue(UserExitDataSource.java:1203)
回避策: ExtractパラメータからBINARY_JSON_FORMATを削除すると、Replicatは正常に実行され、ドキュメントは拡張JSON形式で表されます。
GTID対応データベースに対するリモート変更データ取得Extractが失敗します
グローバル・トランザクション識別子(GTID)を使用するMySQLデータベースに対してリモート・オプションを有効にして変更データ取得Extractプロセスを作成すると、Extractプロセスは失敗し、次のエラーがレポートされます:
ERROR OGG-25192 Trail file '<trail name>' is remote. Only local trail allowed for this extract.
回避策:変更データ取得Extractの「パラメータ・ファイル」画面で、TRANLOGOPTIONS ALTLOGDEST REMOTEという行を削除します。
詳細は、Oracle GoldenGate for MySQLの使用を参照してください。
分散パス: 証明書管理またはクライアント・ウォレットへのルート証明書の追加
OCI GoldenGateとの間でデータを送信またはプルするには、オンプレミスまたはマーケットプレイスのOracle GoldenGateの受信サーバー上に、それぞれ分散サーバー・パスまたはターゲット開始パスを作成する必要があります。OCI GoldenGateのルート証明書または自己署名証明書をOracle GoldenGate証明書管理(Oracle GoldenGate 21c以上)またはクライアント・ウォレット(Oracle GoldenGate 19c)に追加する必要もあります。これにより、Oracle GoldenGateとOCI GoldenGateデプロイメント間の信頼できる接続が作成されます。Oracle GoldenGateとOCI GoldenGate間の分散および受信サーバー・パスでは、WebSocket Secure (WSS)プロトコルのみがサポートされています。
OCI GoldenGateのルート証明書を変更すると、オンプレミスまたはマーケットプレイスのOracle GoldenGateの受信サーバー上の分散サーバー・パスまたはターゲット開始パスが失敗し、次のエラーが生成されます:
ERROR OGG-10390 Oracle GoldenGate Receiver Service: Generic error -1 noticed for endpoint
wss://<deployment URL>:443/services/v2/sources?trail=<trail name>. Error description - SSL
connection unexpectedly closed.
回避策:この問題を修正するには、クライアント・ウォレットまたはサービス・マネージャの「証明書管理」画面で証明書を更新して、OCI GoldenGateデプロイメント・コンソールのルート証明書を使用します。場合によっては、OCI GoldenGateデプロイメントの証明書がルート証明書によって直接署名されず、たとえば中間証明書によって署名される場合、中間CA証明書も追加する必要があることがあります。
詳細:
-
Oracle GoldenGate 19cのユーザーの場合、分散サーバー・パスのユーザー証明書の作成を参照してください。
-
Oracle GoldenGate 21c以上のユーザーの場合、Oracle GoldenGateとOCI GoldenGate間の信頼できる接続の作成を参照してください。
現在サポートされているのはダイジェスト認証のみです
Oracle Cloud Infrastructure GoldenGateを分散パス・ターゲットとして使用する場合、Oracle Cloud Infrastructure GoldenGateでは現在、証明書ベースの認証はサポートされていません。
回避方法:なし。