Flink CDC里oracle启动,数据丢失的情况,打击碰到过吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用Flink CDC读取Oracle数据库时,数据丢失的情况确实可能发生。根据知识库中的相关资料,以下是可能导致数据丢失的原因及解决方案:
debezium.database.pdb.name
参数,可能会导致LogMiner无法正确解析PDB的补偿日志,从而引发数据丢失。debezium.database.pdb.name
参数,以支持PDB模式下的日志解析。SELECT * FROM dba_log_groups WHERE table_name = 'PF_ID_NAME_PK';
如果未开启,需执行以下命令启用:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
scan.startup.mode
参数设置为specific-offset
或timestamp
),但位点设置不准确,可能会跳过部分数据,导致数据丢失。scan.startup.mode
参数时,确保位点设置正确。例如:
earliest-offset
:从最早可用的Binlog位点开始读取。latest-offset
:从最新的Binlog位点开始读取。timestamp
:从指定时间戳开始读取。earliest-offset
开始读取,以避免遗漏数据。currentEmitEventTimeLag
指标,判断作业是否已完成全量数据同步:
currentEmitEventTimeLag
小于等于0时,表示仍在全量同步阶段。currentEmitEventTimeLag
大于0时,表示已进入增量同步阶段。BinlogSplitReader is created
日志,以验证全量数据是否已读取完成。LOG_MINING_FLUSH
表重建问题,可能导致数据丢失。LOG_MINING_FLUSH
表。WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND;
SELECT ANY TRANSACTION
和LOGMINING
权限。数据丢失问题可能由多种原因引起,包括LogMiner配置、表结构变更、Binlog位点设置、连接器版本等。建议按照上述步骤逐一排查,并结合监控指标(如currentEmitEventTimeLag
)和日志信息进行验证。如果问题仍未解决,可以提交工单联系阿里云技术支持团队获取进一步帮助。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。