默认行为更改
本节介绍针对上一个发行版对 Oracle GoldenGate 所做的默认行为更改。
发行版 19.1 (19.29.0.0.251021) - 2025 年 10 月
错误 37909236:MariaDB- 删除对 MariaDB binlog_annotate_row_events=OFF 的要求
从此版本的 Oracle GoldenGate 开始,对于 MariaDB,已删除将 binlog_annotate_row_events 设置为 OFF 的要求。
发行版 19.1 (19.28.0.0.250715) - 2025 年 8 月
错误 37757820:一般 - 启用 NOCHECKUNIQUEKEYS 作为所有非 Oracle 数据库的 BATCHSQL 的默认值
为所有非 Oracle 数据库启用 NOCHECKUNIQUEKEYS 作为 BATCHSQL 的默认值。
发行版 19c (19.27) — 2025 年 5 月
错误 37576949:通用 - 要求新的集成复制 (IR) 具有检查点表
创建集成复制时,Oracle GoldenGate 需要检查点表。
必须重新构建任何现有的集成复制,以包括检查点表。ALTER REPLICAT 命令不能用于将检查点表添加到使用 NODBCHECKPOINT 创建的现有复制进程中。
发行版 19.25.0.0.241015 - 2024 年 10 月
Oracle GoldenGate Wallets 安全更新
已从 Oracle GoldenGate 钱包中删除自动登录属性
为了增强存储身份证明信息的 Oracle GoldenGate 钱包(微服务用户的登录信息)的安全性,Oracle GoldenGate 钱包的自动登录属性已被删除。
因此,在将部署打补丁到 Oracle GoldenGate 发行版 19.25 及更高版本并启动后,回滚到以前的 Oracle GoldenGate 发行版 19.24 或更低版本后,不可行,因为无法自动将受密码保护的钱包转换回自动登录钱包。
在打补丁到 Oracle GoldenGate 发行版 19.25 或更高版本之前获取钱包中存储的信息的短期解决方法是将自动登录钱包从早期版本保存,并在回滚时手动恢复这些钱包。
发行版 19.1.0.0.230418 - 2023 年 4 月
Oracle
与 JDK for Oracle 捆绑的 Opatches
JDK 现已打包在 Oracle GoldenGate 修补程序中,从发行版 21.10 和 19.1.0.0.230418 开始。请注意,只有 <GG_HOME>/jdk 目录更新了 GoldenGate 修补程序发行版。有关通过 GoldenGate 修补程序或独立更新 JDK 的更多信息和其他参考,请参见文档 ID 2359395.1 。
您仍可以选择在任何时候将最新的 JDK 修补程序单独安装到 <GG_HOME>/jdk 目录中。有关更多信息,请参见文档 ID 1492980.1 。
发行版 19.1.0.0.200714 - 2020 年 9 月
PostgreSQL
指定数据时,参数 TransactionErrorBehavior 必须设置为 2
要使 PostgreSQL Replicat 能够正确处理数据库错误条件,必须将参数 TransactionErrorBehavior 的值设置为 2。它是 Oracle GoldenGate 的必需参数,需要在 DSN 下的 odbc.ini 文件中指定该参数。下面是指定参数的示例 DSN:
[ODBC]
IANAAppCodePage=4
InstallDir=/u01/ggate
[pgdsn]
Driver=/u01/ggate/lib/GGpsql25.so
Description=DataDirect 7.1 PostgreSQL Wire Protocol
Database=mypgdb
HostName=mypghost
PortNumber=5432
LogonID=mypguser
Password=**********
TransactionErrorBehavior=2
要了解更多信息,请参见 https://media.datadirect.com/download/docs/odbc/allodbc/index.html#page/odbc/transaction-error-behavior.html
发行版 19c (19.1.0.0.200714) - 2020 年 7 月
PostgreSQL
DEFERAPPLYINTERVAL 在 PostgreSQL 复制中未按预期工作
如果数据库和操作系统的时区不同,则 Replicat 将等待,直到源系统的本地 GMT 时间大于记录提交时间戳 + DEFERAPPLYINTERVAL 延迟。
在复制重新启动后以混合大小写创建时,复制无法识别检查点表
检查点表名称必须采用小写形式,不带引号,并且不包含任何特殊字符。
发行版 19c (19.1.0) - 2020 年 5 月
如果 Oracle GoldenGate 主目录名称中存在空间,则 Oracle GoldenGate Configuration Assistant 不运行
如果 Oracle GoldenGate 主目录名称或 OGG_HOME 中有空间(例如 OGG HOME),则 Windows 上的 Oracle GoldenGate Configuration Assistant (OGGCA) 不会运行。
发行版 19c (19.1.0) - 2019 年 9 月
INFO HEARTBEATTABLE
SQL Server 的 INFO HEARTBEATTABLE 命令现在报告心跳频率间隔、清除频率间隔和保留时间。
TRANLOGOPTION QUERYTIMEOUT 默认值
对于 SQL Server,默认 QUERYTIMEOUT 已从 30 秒扩展到 300 秒。
在 DDL 更改后添加验证
如果 SQL Server 的提取检测到源表与更改数据捕获表之间的表结构差异,则将异常终止。
TLS 1.2 连接支持
对于 SQL Server,TLS 1.2 连接支持(如果启用)由提取和复制自动提供。
将 Oracle GoldenGate 19c 与 MySQL 一起使用的先决条件
Oracle GoldenGate for MySQL 依赖于 OpenSSL 库,因此,必须提供 OpenSSL 库。
Linux:设置 LD_LIBRARY_PATH 以包括安装 OpenSSL 库的路径。
Windows:对于 MySQL 8.0 及更高版本,OpenSSL 库随 MySQL 服务器一起提供,并保存在 MySQL 主目录的 \bin 目录中。必须确保将 OpenSSL 的位置添加到路径环境变量。
例如,需要将 D:\path\to\MySQLServer_install_dir\bin 目录添加到 PATH 环境变量。
或者,您可以安装包含 OpenSSL 库的最新 MySQL C++ 连接器(MySQL 8.0 或更高版本),并确保将 OpenSSL 的位置添加到路径环境变量。例如,需要将 C:\Program Files\MySQL\Connector C++ 8.0\lib64 目录添加到 PATH 环境变量。
使用 MySQL 5.7 或更低版本时,您需要安装最新的 MySQL C++ 连接器(MySQL 8.0 或更高版本),其中包含 OpenSSL 库,并确保将 OpenSSL 的位置添加到 PATH 环境变量中。例如:需要将 C:\Program Files\MySQL\Connector C++ 8.0\lib64 目录添加到 PATH 环境变量。
Oracle GoldenGate for MySQL 8.0 依赖于 OpenSSL 库,因此此库的可用性是先决条件。您需要确保该磁带库已安装在运行 Oracle GoldenGate 的系统上,并且相应地设置了此磁带库的路径。
Oracle GoldenGate 用户名没有模式限制,但最大长度为 512 个字符
已删除 Oracle GoldenGate 用户名的约束条件,但最大长度为 512 个字符。对于“基本”和“证书”类型用户,REST API 中的用户名没有对特殊字符的约束。
但是,在微服务体系结构 Web 界面中,用户名只能包括基本类型用户的特定特殊字符。这些字符为:
at sign (@), period (.) , dash (-), comma (,), underscore (_), number sign (#), dollar sign ($), plus sign (+), backslash (\), slash (/), equal sign (=), less than sign (<), or greater than sign (>).
发行版 19c (19.1.0) - 2019 年 5 月初始发行版
微服务实施需要更强的密码
微服务实施中用户的密码需要更强的密码,并使用大写字母、数字和特殊字符。
线索文件格式
提取更新后,如果指定了较新的线索文件格式,则主提取将以指定的线索文件格式自动滚转到下一个线索文件和写入器。无需运行 ALTER EXTRACT ETROLLOVER 命令。
提取默认线索文件版本
在升级到 Oracle GoldenGate 19c 时,主提取将以与现有线索文件格式相同的格式写入线索文件,除非使用 FORMAT RELEASE 选项显式指定线索文件格式版本。此行为更改可防止后续复制在未升级复制时异常终止。
不再需要 _INFINITYTOZERO 参数
不再需要 _INFINITYTOZERO 参数。当 Oracle GoldenGate 检测到 Oracle 数字字段中的 +INF 或 -INF 值时,系统会自动处理该值,就好像已设置此参数一样。
如果目标是 Oracle Replicat 19c 发行版,则将正确应用 +INF 和 -INF。对于所有其他数据库(包括较旧的 Oracle Replicat),将应用 0 值。
Oracle TIMESTAMP WITH TIME ZONE 捕获
FETCH 和初始加载现在支持带有区域 ID 数据的 TIMEZONE 的 TIMESTAMP。有关详细信息,请参见 Reference for Oracle GoldenGate 中的 [TRANLOGOPTIONS](/pls/topic/lookup?ctx=en/middleware/goldengate/core/19.1/release-notes&id=GWURF-GUID-B6ADFEC9-10E6-456D-9477-088513E113AF)
如果需要,将自动启用此功能,您不再需要指定 TRANLOGOPTIONS INCLUDEREGIONID。对于非 Oracle 目标,使用 TRANLOGOPTIONS INCLUDEREGIONIDWITHOFFSET 将区域 ID 转换为与 UTC 的时间偏移量。
GETCTASDML 选项默认设置
缺省情况下,TRANLOGOPTIONS 参数提供的 GETCTASDML 选项处于启用状态。
NOALLOWNULLABLEKEYS 默认设置
NOALLOWNULLABLEKEYS 参数的默认设置设置为 true。
此功能是为了帮助客户轻松标识可能有问题的表,因为键列中允许多个 NULL 值。
Binlog 格式支持更改
(仅限 MySQL)Capture 会无提示地忽略未以 ROW 格式写入的 binlog 事件,而不是在检测到 ROW 以外的 binlog_format 时异常终止。