Oracle GoldenGate 问题排查 - Amazon Relational Database Service

Oracle GoldenGate 问题排查

本节说明 Oracle GoldenGate 与 Amazon RDS for Oracle 结合使用时的最常见问题。

打开联机重做日志时出错

确保将数据库配置为保留存档的重做日志。请考虑以下准则:

  • 以小时为单位指定日志保留的持续时间。最小值为一小时。

  • 设置持续时间以超过源数据库实例的任何可能的停机时间、任何可能的通信时间以及源数据库实例的任何可能的联网问题期间。指定这样的持续时间后,可允许 Oracle GoldenGate 根据需要从源数据库实例恢复日志。

  • 确保您的实例上有足够的文件存储空间。

如果未启用日志保留,或者保留值太小,则将收到类似以下内容的错误消息。

2022-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 Not able to establish initial position for begin time 2022-03-06 06:16:55.

Oracle GoldenGate 似乎配置正确,但复制不起作用

对于预先存在的表,您必须指定 Oracle GoldenGate 从中运行的 SCN。

修复此问题
  1. 登录源数据库并启动 Oracle GoldenGate 命令行界面(ggsci)。下面的示例说明了登录格式。

    dblogin userid oggadm1@OGGSOURCE
  2. 使用 ggsci 命令行为 EXTRACT 进程设置起始 SCN。以下示例为 EXTRACT 将 SCN 设置为 223274。

    ALTER EXTRACT EABC SCN 223274 start EABC
  3. 登录到目标数据库。下面的示例说明了登录格式。

    dblogin userid oggadm1@OGGTARGET
  4. 使用 ggsci 命令行为 REPLICAT 进程设置起始 SCN。以下示例为 REPLICAT 将 SCN 设置为 223274。

    start RABC atcsn 223274

由于 SYS 上的查询,集成 REPLICAT 速度缓慢。"_DBA_APPLY_CDR_INFO"

Oracle GoldenGate 冲突检测和解决 (CDR) 提供了基本的冲突解决例程。例如,CDR 可以解决 INSERT 语句的唯一冲突。

在 CDR 解决冲突时,它可以临时将记录插入异常表 _DBA_APPLY_CDR_INFO 中。集成的 REPLICAT 稍后会删除这些记录。在极少数情况下,集成的 REPLICAT 可以处理大量冲突,但是新的集成 REPLICAT 并不能取代它。_DBA_APPLY_CDR_INFO 中的现有行不会被删除而是被孤立。任何新的集成 REPLICAT 进程都会减慢,因为它们正在查询 _DBA_APPLY_CDR_INFO 中的孤立行。

要从 _DBA_APPLY_CDR_INFO 中删除所有行,请使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.truncate_apply$_cdr_info。此过程是作为 2020 年 10 月版本和补丁程序更新的一部分发布的。以下数据库版本中提供该过程:

以下示例展示了将表 _DBA_APPLY_CDR_INFO 截断。

SET SERVEROUTPUT ON SIZE 2000 EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;