大佬们,使用flink cdc 同步oracle的数据,如果归档日志被删除了,流任务重新拉起的话,还能读到oracle的数据吗?如果oracle的数据在一开始就没有开启归档日志,在开启归档日志之前的数据Flink cdc可以读取到吗?
"很明显不能。如果cdc 会读取 redo的话,前提redo没有被覆盖。第一步是全量,后续是增量的日志。 此答案整理自钉群“Flink CDC 社区”"
可以读取到 Oracle 的数据,但可能会有数据缺失或重复。因为 CDC 会通过读取 Oracle 数据库的事务日志来获取增量数据变更,如果归档日志被删除,那么这些增量数据可能无法被正确地捕获,从而导致数据缺失或重复。
对于 Oracle 数据库在开启归档日志之前的数据,Flink CDC 可以读取到有限范围内的数据,具体取决于 CDC 的配置和 Oracle 数据库的情况。在没有启用归档日志时,CDC 会使用 Oracle 的闪回技术,从数据库的 UNDO表空间读取历史数据。但是这种方式只能获取到一定时间内的数据,超过了这个时间范围,就无法读取到历史数据了。
因此,建议在采用 CDC 同步 Oracle 数据时,尽可能开启归档日志,以避免数据丢失和重复读取的问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。