Flink CDC中oracle cdc 报错,高版本有对这个问题的修复吗?

Flink CDC中oracle cdc 报错,不能从savepoint恢复 oraclecdc 2.2 ?
Caused by: java.lang.IllegalStateException: Retrieve schema history failed, the schema records for engine 946992b3-f166-448a-b127-9a168cfe0ecc has been removed, this might because the debezium engine has been shutdown due to other errors.高版本有对这个问题的修复吗?

展开
收起
真的很搞笑 2023-10-31 17:24:44 117 发布于黑龙江 分享
分享
版权
举报
阿里云 AI 助理回答

问题分析

根据您提供的报错信息,Caused by: java.lang.IllegalStateException: Retrieve schema history failed, the schema records for engine ... has been removed,这表明在使用 Oracle CDC 2.2 版本时,Debezium 引擎的 Schema 历史记录被移除,导致无法从 Savepoint 恢复。这种情况通常是因为 Debezium 引擎因其他错误而关闭,或者 Schema 历史记录存储(如 Kafka 或文件系统)中的数据被清理或丢失。

此问题可能与以下因素相关: 1. Debezium 引擎的生命周期管理:如果引擎因错误关闭,Schema 历史记录可能未正确保存。 2. Schema 历史记录存储配置:如果使用的是文件系统存储,可能会因为文件清理策略导致历史记录丢失。 3. 版本缺陷:Oracle CDC 2.2 可能存在已知问题,导致 Schema 历史记录无法正确恢复。

解决方案

1. 升级到更高版本

根据知识库资料,Dataphin 在 V3.13 版本后升级到了 Oracle CDC 2.4。高版本的 Oracle CDC 对许多已知问题进行了修复,包括 Schema 历史记录管理和 Savepoint 恢复相关的改进。因此,建议您 升级到 Oracle CDC 2.4 或更高版本,以解决此问题。

2. 配置 Schema 历史记录存储

确保 Schema 历史记录存储的配置正确,避免数据丢失。以下是常见的配置建议: - Kafka 存储:推荐使用 Kafka 作为 Schema 历史记录存储,因为它具有更高的可靠性和持久性。配置示例如下:

debezium.schema.history.internal.kafka.topic=your-schema-history-topic
debezium.schema.history.internal.kafka.bootstrap.servers=your-kafka-broker:9092
  • 文件系统存储:如果使用文件系统存储,请确保文件路径不会被定期清理,并设置适当的权限。配置示例如下:
    debezium.schema.history.internal.file.filename=/path/to/schema-history.dat
    

3. 检查 Debezium 引擎日志

通过检查 Debezium 引擎的日志,确认是否有其他错误导致引擎关闭。常见问题包括: - 数据库连接中断。 - 权限不足。 - Binlog 格式不兼容。

如果发现其他错误,请优先解决这些根本问题。

4. 手动重建 Schema 历史记录

如果无法从 Savepoint 恢复,可以尝试手动重建 Schema 历史记录。具体步骤如下: 1. 确保数据库表结构未发生重大变更。 2. 删除现有的 Schema 历史记录存储(如 Kafka Topic 或文件)。 3. 重新启动 Flink 作业,触发全量同步(Snapshot 阶段),以重新生成 Schema 历史记录。

5. 调整 Savepoint 配置

确保 Savepoint 的配置正确,避免因配置不当导致恢复失败。例如: - 设置 scan.startup.mode 参数为 earliest-offsetspecific-offset,以便在恢复时从正确的位点开始读取。 - 确保 Savepoint 文件未损坏,并且与当前作业的拓扑结构一致。

总结与建议

  • 升级到 Oracle CDC 2.4 或更高版本 是解决此问题的最佳方式,因为高版本对 Schema 历史记录管理和 Savepoint 恢复进行了优化。
  • 如果无法升级,请检查并优化 Schema 历史记录存储的配置,确保数据不会丢失。
  • 通过日志排查其他潜在问题,并根据需要手动重建 Schema 历史记录。

如果您在升级或配置过程中遇到其他问题,请随时提供详细信息,我们将进一步协助您解决问题。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

还有其他疑问?
咨询AI助理
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等