與 GoldenGate 處理作業相關的已知問題
探索與 GoldenGate 程序相關的已知問題,以及如何解決這些問題。
MySQL InnoDB 叢集的 GoldenGate 擷取
從 MySQL InnoDB 叢集擷取時,可停止 Oracle GoldenGate 擷取的已知問題。
GoldenGate 目前支援標準 GTID,但未標記 GTID。MySQL Shell 9.5 和更新版本在搭配 MySQL Server 8.3 或更新版本使用時,會自動將 mysqlsh 標記新增至某些管理交易。如果 GoldenGate 遇到這些標記的交易,則 GTID 型 Extract 可能會失敗。
這會影響 MySQL InnoDB 叢集的 GTID 型擷取。使用日誌編號和位移的獨立 MySQL 擷取不受影響。
如何防止此問題
在升級叢集之前採取動作:使用 MySQL Shell 9.4 或更舊版本進行叢集升級。使用 GoldenGate GTID 型 Extract 時,請勿將 MySQL Shell 9.5 或更新版本用於叢集作業。
開始升級後選擇 Shell 版本太晚。如果 MySQL Shell 9.5 或更新版本新增了標記的 GTID,則 Extract 可能會失敗;復原需要完全重新同步。
解決方法
您可以將 MySQL Server 升級為 8.3 或更新版本,但使用 MySQL Shell 9.4 或更舊版本來安裝、設定或升級 InnoDB 叢集。請先執行此動作,再設定 GoldenGate Extract。
撤銷 TRANSACTION_GTID_TAG 權限不是有效的解決方法,可能會導致 MySQL Shell 作業 (例如新增或移除執行處理) 失敗。
安全注意事項:MySQL Shell 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 集合 TLS 安全協定
如果 MongoDB Replicat、DocumentDB Replicat 或 Oracle JSON 集合連線因報表檔案中的下列錯誤而失敗:
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 Snowflake Streaming Replicat 錯誤
Snowflake Streaming 處理程式失敗,網址為:Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"
解決方法:將下列內容新增至您的 Replicat 特性檔:
jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true
OCI GoldenGate 部署主控台無法顯示自訂 / 非預設的 Discard 檔案
依預設,捨棄檔案遵循命名慣例 <process-name>.dsc。除非您重新命名捨棄檔案,否則您可以在 OCI GoldenGate 部署主控台中查看所有捨棄檔案。部署主控台不會顯示自訂命名的捨棄檔案。
解決方法:使用建置詳細資訊頁面中的「收集診斷」工具來存取捨棄檔。
使用 MongoDB Extract 的歷程檔搭配 BINARY_JSON_FORMAT 時複製失敗
Replicat 在 Extract 參數檔中使用從 MongoDB Extract 產生的歷程檔 (在 Extract 參數檔中為 BINARY_JSON_FORMAT) 時,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 會順利執行,並以 Extended JSON 格式表示文件。
啟用 GTID 之資料庫的遠端變更資料擷取擷取失敗
當您針對使用全域異動識別碼 (GTID) 的 MySQL 資料庫建立「遠端」選項的「變更資料擷取擷取」處理作業時,「擷取」處理作業會失敗,並會報告下列錯誤:
ERROR OGG-25192 Trail file '<trail name>' is remote. Only local trail allowed for this extract.
解決方法:在「變更資料擷取擷取」的「參數」檔案畫面上,移除行 TRANLOGOPTIONS ALTLOGDEST REMOTE。
如需詳細資訊,請參閱使用 Oracle GoldenGate for MySQL 。
分送路徑:新增根憑證至「憑證管理」或您的從屬端公事包
若要將資料傳送至 OCI GoldenGate 或從中提取資料,您必須分別在內部部署或市集 Oracle GoldenGate 的接收端伺服器上建立分送伺服器路徑或目標起始路徑。您還必須將 OCI GoldenGate 根憑證或自行簽署憑證新增至 Oracle GoldenGate 憑證管理 (Oracle GoldenGate 21 c 或更新的版本) 或從屬端公事包 (Oracle GoldenGate 19 c)。這會在您的 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 19 c 使用者,請參閱建立分送伺服器路徑使用者憑證。
-
對於 Oracle GoldenGate 21 c 或更新版本的使用者,請參閱在 Oracle GoldenGate 與 OCI GoldenGate 之間建立信任的連線。
目前只支援摘要認證
當您使用 Oracle Cloud Infrastructure GoldenGate 作為分配路徑目標時,Oracle Cloud Infrastructure GoldenGate 目前不支援憑證型驗證。
解決方法:無。