开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

FlinkCDC+Oracle19C 遇到Caused 怎么解决?

FlinkCDC+Oracle19C 遇到Caused by: io.debezium.DebeziumException: The db history topic or its content is fully or partially missing. Please check database history topic configuration and re-execute the snapshot.
怎么解决?

展开
收起
小小鹿鹿鹿 2024-01-24 13:17:35 55 0
1 条回答
写回答
取消 提交回答
  • 这个问题表明Debezium在尝试读取数据库变更历史(db history)时遇到了问题,可能是由于数据库历史主题(topic)不存在,或者部分内容缺失。在Flink CDC结合Oracle 19C的环境中,Debezium作为CDC工具,会将数据库的schema更改和初始快照信息保存在一个专门的Kafka topic中,这个topic被称为数据库历史topic。

    要解决此问题,请按照以下步骤操作:

    1. 确认配置

      • 检查Debezium Oracle Connector的配置,确保database.history.kafka.topic参数设置正确,指向了你期望的数据库历史topic。
      • 确认Kafka集群和相关配置(bootstrap.servers, security.protocol等)无误。
    2. 检查topic是否存在

      • 使用kafka-topics.sh命令或者其他Kafka客户端工具检查指定的历史topic是否已经创建并且可用。
    3. 重新执行快照

      • 如果topic存在但是内容缺失,可能是因为之前的快照执行过程出现问题或被误删。在这种情况下,可以考虑删除当前的数据库历史topic(注意这会丢失之前所有的schema更改历史)并重启Debezium connector,它会重新执行一次全量快照。
    4. 检查Kafka权限

      • 确保运行Debezium connector的用户有足够的权限去读写数据库历史topic。

    示例配置:

    connector.class=io.debezium.connector.oracle.OracleConnector
    database.server.name=myserver
    database.hostname=<your_oracle_host>
    database.port=<your_oracle_port>
    database.user=<your_username>
    database.password=<your_password>
    database.dbname=<your_database_name>
    database.history.kafka.bootstrap.servers=<your_kafka_bootstrap_servers>
    database.history.kafka.topic=<your_db_history_topic>
    

    执行重启命令(假设你使用的是Flink CDC的Table API):

    # 停止Flink作业
    flink stop <job_id>
    
    # 清理或重建数据库历史topic
    kafka-topics.sh --zookeeper <zk_connect_string> --delete --topic <your_db_history_topic>
    # 或者如果topic不存在,创建它
    kafka-topics.sh --bootstrap-server <kafka_bootstrap_server> --create --topic <your_db_history_topic> --partitions <num_partitions> --replication-factor <replication_factor>
    
    # 重新启动Flink作业,将会触发新的快照
    flink run <your_flink_job_jar> ...
    
    2024-01-26 16:05:02
    赞同 展开评论 打赏

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

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载

相关镜像