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。
修复此问题
-
登录源数据库并启动 Oracle GoldenGate 命令行界面(
ggsci
)。下面的示例说明了登录格式。dblogin userid oggadm1@OGGSOURCE
-
使用
ggsci
命令行为EXTRACT
进程设置起始 SCN。以下示例为EXTRACT
将 SCN 设置为 223274。ALTER EXTRACT EABC SCN 223274 start EABC
-
登录到目标数据库。下面的示例说明了登录格式。
dblogin userid oggadm1@OGGTARGET
-
使用
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;