Confluent Kafka Connect CDC新记录未写入表专属Topic问题咨询
Confluent Oracle CDC 表专属Topic无新增记录 官方排查说明释义
新记录未写入表专属Topic
现有Schema可能与redo log Topic不兼容。删除对应Schema或更换其他redo log Topic可解决该问题
官方表述歧义点明确解释
- 现有Schema:指Schema Registry中注册的表专属Topic对应的value/key Schema,不是redo log Topic的Schema。通常是之前测试、表DDL变更后遗留的旧Schema,和当前表的实际结构不匹配,导致CDC解析后的记录无法通过Schema兼容性校验,无法写入目标Topic。
- 与redo log Topic不兼容:此处是官方简化表述,实际指redo log中捕获的最新表结构,和Schema Registry中存储的表专属Topic Schema结构不匹配,并非redo log Topic本身存在故障。
- 删除对应Schema:需要删除的是Schema Registry中表专属Topic对应的全部Schema版本,通用操作命令为:
curl -X DELETE http://<SchemaRegistry地址>:8081/subjects/<表专属Topic名>-value curl -X DELETE http://<SchemaRegistry地址>:8081/subjects/<表专属Topic名>-key - 更换其他redo log Topic:该方案的适用场景是当前使用的redo log Topic中残留了大量和现有表结构不兼容的历史redo记录,连接器启动后消费到这些旧记录时会直接跳过,不会生成表专属Topic的消息。更换全新的redo log Topic后,连接器会从当前最新的Oracle redo位点开始消费,避免历史脏数据的影响。
按官方说明操作后仍无数据的补充排查点
- 确认CDB/PDB场景下连接器配置中
oracle.pdb.name参数已正确填写目标PDB名称,未填写的情况下连接器只会扫描CDB根容器的表,无法识别PDB内的业务表。 - 检查
table.inclusion.regex规则是否和表的全限定名完全匹配,规则格式要求为<PDB名>.<SCHEMA名>.<表名>,大小写需和Oracle元数据的大小写保持一致(Oracle默认全大写)。 - 查看连接器INFO级日志,搜索
Processing change for table关键字,如果没有匹配日志说明Oracle端的redo/归档日志配置错误,或者连接器使用的Oracle用户缺少LOGMINING、SELECT ANY TRANSACTION等必要权限。 - 确认Oracle端目标表已开启补充日志,执行SQL
SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_all FROM v$database;,需至少开启PRIMARY KEY或ALL级别的补充日志才能捕获到完整的行变更内容。
内容的提问来源于stack exchange,提问作者Lewis
相关产品推荐
相关产品推荐

