
某客户使用OGG同步整个schema遇到了ORA-00942表不存在的问题。后续发现是由于源表做 rename xxx to xxx; 的操作时未同步到目标端导致的。本文将针对OGG同步RENAME操作做详细测试初始extract DDL 参数配置如下DDL INCLUDE MAPPED , OBJTYPE TABLE INCLUDE MAPPED OBJTYPE INDEX DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10 DDLOPTIONS REPORT在此配置下测试rename操作情况现象一 使用ALTER TABLE xxxxx RENAME to xxxxx; 正常同步在源端操作以下SQL正常同步到目标端sys alter table FUSE.DEPARTMENTS rename to DEPARTMENTSbak查看OGG日志DDL操作成功匹配并同步现象二 使用 RENAME xxxx to xxxxx; 不会同步到目标端在源端使用表的OWNER做RENAME操作查看OGG日志该操作被配置过滤掉目标端表没有RENAME成功解决方法添加INCLUDE OPTYPE RENAMEDDL INCLUDE MAPPED , OBJTYPE TABLE INCLUDE MAPPED OBJTYPE INDEX INCLUDE OPTYPE RENAME DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10 DDLOPTIONS REPORT在此配置下源端做RENAME操作查看ggserr日志DDL成功匹配 INCLUDE OPTYPE RENAME目标端查看原表departments已不存在RENAME表操作成功同步到目标端总结在做整个schema的OGG同步时建议在DDL处加上 INCLUDE OPTYPE RENAME 防止源端做RENAME操作