ADD HEARTBEATTABLE

对所有支持的数据库有效。有关支持的数据库的详细信息,请参阅认证矩阵。

此命令需要使用 DBLOGIN 登录数据库。

使用 ADD HEARTBEATTABLE 可以创建使用自动脉动功能所需的对象。此命令执行以下任务

注:绝不应在 Oracle Multitenant 数据库的根 CDB 中创建心跳表对象。

默认种子、脉动和历史记录表名分别为 GG_HEARTBEAT_SEED、GG_HEARTBEAT 和 GG_HEARTBEAT_HISTORY。

在微服务体系结构中,使用复制设置配置方案。

对于 Db2 LUW,必须使用 db2set DB2_ATS_ENABLE=yes 命令设置 DB2_ATS_ENABLE 属性。

对于 i 的 Db2,要处理脉动表的升级或错误配置,可以再次运行 ADD HEARTBEATTABLE 命令,它将修复现有脉动表的设置的功能,而不删除现有脉动数据。

对于 i,必须安装许可的程序 5770SS1 Option 39 International Components for Unicode(对于 i)。Db2

对于 Db2 for i,必须将脉动表记录到与对象相同的日志中,这些对象使用所述的脉动表在提取中进行复制。如果未这样,提取将异常终止并指示有多个日志可用。此外,对于特定 Oracle GoldenGate 安装中不读取相同日志的任何其他提取,无法为其启用脉动表。

对于 Amazon Aurora MySQL,必须在参数组中启用全局变量 event_scheduler,因为 Amazon RDS 不允许设置全局变量。重新启动数据库后,event_scheduler 将恢复为禁用。要避免这种情况,需要在 my.cnf/ini 文件中启用 event_scheduler。

对于 PostgreSQL,必须手动创建系统作业来定期调用脉动记录更新和历史记录清除函数 gg_hb_job_run。例如,可以创建一个每分钟运行一次的 cron 作业。该函数将检查脉动配置的实际脉动记录更新和清除频率设置,并仅在这些界限内处理操作:

PGPASSWORD="$passwd" psql -U gguser -d dbname -h dbhostname -p dbport# -c "select <ggschema.gg_hb_job_run();" >/dev/null 2>&1

对于 Azure SQL 数据库,仅支持 ADD HEARTBEATTABLE TARGETONLY,并且由于 Azure SQL 数据库没有 SQL Server 代理,无法创建清除例行程序。因此,用户必须定期运行 GG_PURGE_HB_TAB 存储过程以删除旧脉动记录。

语法

ADD HEARTBEATTABLE
[, FREQUENCY number_in_seconds]
[, RETENTION_TIME number_in_days] |
[, PURGE_FREQUENCY number_in_days]
[, PARTITIONED]
[, TARGETONLY]

FREQUENCY number_in_seconds

指定生成脉动记录的频率。默认值为 60 秒。

考虑以下限制:

RETENTION_TIME number_in_days

指定清除脉动历史记录表中存在时间长于保留时间的脉动条目。默认值为 30 天。

所有数据库的最小值为 1,最大值为 2147483646。

PURGE_FREQUENCY number_in_days

指定运行清除调度程序以从脉动历史记录表中删除存在时间长于保留时间的表条目的频率。默认值为 1 天。

对于 Db2 LUW 和 Db2 z/OS,最小值为 1,最大值为 31。

对于所有其他受支持的数据库,最小值为 1,最大值为 199。

PARTITIONED

对 Oracle 有效。

在脉动历史记录表上启用分区。收到的脉动时间戳所在列用于以一天为间隔对表进行分区。默认情况下,不对脉动历史记录表进行分区。

TARGETONLY

对 Oracle AI Database、Db2 i Series、Db2 LUW、Db2 z/OS、MySQL、PostgreSQL 和 SQL Server 有效。

不在脉动种子表和脉动表上启用补充日志记录,并且不创建用于更新脉动表的调度程序作业。

示例


以下命令创建默认脉动表、过程和作业。

ADD HEARTBEATTABLE

以下命令创建默认脉动表、过程和作业,并设置定制频率、保留时间和清除频率。

ADD HEARTBEATTABLE, FREQUENCY 120, RETENTION_TIME 10, PURGE_FREQUENCY 2

以下命令创建默认脉动表、过程和作业,并在脉动历史记录表中启用分区,在脉动表和脉动种子表中不启用补充日志记录。

ADD HEARTBEATTABLE, partitioned, TARGETONLY