与 GoldenGate 进程相关的已知问题

了解与 GoldenGate 流程相关的已知问题以及如何解决这些问题。

MySQL InnoDB 集群的 GoldenGate 捕获

从 MySQL InnoDB 集群捕获时,有一个已知问题可以停止 Oracle GoldenGate 捕获。

GoldenGate 当前支持标准 GTID,但不支持标记 GTID。MySQL 与 MySQL Server 8.3 或更高版本一起使用时,Shell 9.5 及更高版本会自动将 mysqlsh 标记添加到某些管理事务中。如果 GoldenGate 遇到这些标记的事务处理,则基于 GTID 的提取可能会失败。

这会影响 GTID-based capture for MySQL InnoDB Cluster 。使用日志编号和偏移量的独立 MySQL 捕获不受影响。

如何防止此问题

在升级群集之前执行操作:使用 MySQL Shell 9.4 或更低版本进行群集升级。使用基于 GoldenGate GTID 的提取时,请勿将 MySQL Shell 9.5 或更高版本用于群集操作。

启动升级后选择 Shell 版本太晚。如果 MySQL Shell 9.5 或更高版本添加了标记的 GTID,则提取可能会失败;恢复需要完全重新同步。

解决方法

您可以将 MySQL Server 升级到版本 8.3 或更高版本,但是使用 MySQL Shell 9.4 或更低版本安装、配置或升级 InnoDB 集群。在配置 GoldenGate 提取之前执行此操作。

撤消 TRANSACTION_GTID_TAG 权限不是有效的解决方法,可能会导致 MySQL Shell 操作(例如添加或删除实例)失败。

安全说明:MySQL Shell 9.4 包含后续发行版中解决的漏洞。在使用此临时解决方法之前,请先向您的安全团队复核安全影响。

使用 AWS Glue 数据目录和 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 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 Snowflake 流处理复制错误

Snowflake Streaming 处理程序失败,网址为:Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"

解决方法:将以下内容添加到复制属性文件:

jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true

OCI GoldenGate 部署控制台无法显示定制/非默认命名的放弃文件

默认情况下,放弃文件遵循命名约定 <process-name>.dsc。您可以查看 OCI GoldenGate 部署控制台中的所有放弃文件,除非您将其重命名。部署控制台不显示定制的命名放弃文件。

解决方法:使用部署详细信息页上的收集诊断工具来访问放弃文件。

将 MongoDB Extract 中的 Trail 文件与 BINARY_JSON_FORMAT 一起使用时,复制失败

当 Replicat 使用从 Extract 参数文件中包含 BINARY_JSON_FORMAT 的 MongoDB Extract 生成的 Trail 文件时,复制将失败,并显示以下错误:

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)

解决方法:从提取参数中删除 BINARY_JSON_FORMAT 时,复制将成功运行,文档将以扩展 JSON 格式表示。

启用 GTID 的数据库的远程更改数据捕获提取失败

在为使用全局事务处理标识符 (Global Transaction Identifier,GTID) 的 MySQL 数据库创建启用了“远程”选项的“更改数据捕获提取”处理时,提取处理将失败,并报告以下错误:

ERROR   OGG-25192  Trail file '<trail name>' is remote. Only local trail allowed for this extract.

解决方法:在“更改数据捕获提取”的“参数文件”屏幕上,删除行 TRANLOGOPTIONS ALTLOGDEST REMOTE。

有关详细信息,请参阅将 Oracle GoldenGate 用于 MySQL 。

分发路径:将根证书添加到证书管理或客户端 Wallet

要将数据发送到 OCI GoldenGate 或从 OCI 中提取数据,您必须分别在内部部署或市场 Oracle GoldenGate 中的接收器服务器上创建分发服务器路径或目标启动路径。您还必须将 OCI GoldenGate 根证书或自签名证书添加到 Oracle GoldenGate 证书管理(Oracle GoldenGate 21 c 或更高版本)或客户端 wallet (Oracle GoldenGate 19 c )。这将在 Oracle GoldenGate 和 OCI GoldenGate 部署之间创建可信连接。Oracle GoldenGate 与 OCI GoldenGate 之间的分发和接收方服务器路径仅支持 WebSocket 安全 (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.

解决方法:要修复此问题,请更新客户端 wallet 或 Service Manager 的“证书管理”屏幕中的证书,以使用 OCI GoldenGate 部署控制台根证书。在某些情况下,如果 OCI GoldenGate 部署的证书不是直接由根证书签名,而是由中间证书签名,则可能还需要添加中间 CA 证书。

了解更多信息:

当前仅支持摘要验证

将 Oracle Cloud Infrastructure GoldenGate 用作分发路径目标时,Oracle Cloud Infrastructure GoldenGate 当前不支持基于证书的身份验证。

解决方法:无。