Flink CDC抽取Oracle的问题,我昨天在oralce 创建了4张测试表,每张表插入了三四条数据,测试了一些简单的增删改查,但是Oracle归档日志一天就15G了,把空间占满了,oracle 都挂了 ,这什么原因,checkpoint 设置的太小了吗?
Oracle还是买ogg把,oracle挂了... 那是服务器资源不够. 如果你用的不是oracle一体机, 只是 IOE 文件系统oracle ,是可以使用CDC进行同步的. ,此回答整理自钉群“Flink CDC 社区”
根据您的描述,Oracle归档日志一天就达到了15GB并导致数据库崩溃,可能有以下几个原因:
CDC抽取产生大量的数据变更:Flink CDC在抽取Oracle数据时,会监听数据库的事务日志(Redo Log),如果数据库中的表有频繁的数据变更操作,例如插入、更新和删除等,那么CDC会产生大量的变更事件,进而生成大量的归档日志。
数据库配置问题:检查Oracle数据库的归档日志模式及相关配置。如果数据库的归档模式设置为正常或批量,可能需要调整为另一种模式,如简单模式。此外,还可以检查其他相关配置项,如归档日志的保留时间、归档频率等。
设置合适的checkpoint间隔:检查Flink CDC的checkpoint配置。较小的checkpoint间隔可能会导致更频繁的状态保存和WAL确认,从而增加归档日志的产生。您可以尝试增大checkpoint间隔,以减少对归档日志的影响。
业务需求评估:评估您的业务需求是否真正需要实时的CDC抽取。如果不需要实时性,可以考虑降低CDC抽取的频率,例如更改调度策略、增加延迟等。这样可以减少归档日志的产生并保护数据库的稳定性。
调整CDC配置:根据实际情况,调整Flink CDC的相关配置,例如parallelism(并行度)、任务分发策略、数据过滤等。合理的配置可以减少不必要的资源消耗和归档日志的产生。
Oracle归档日志占用空间过大的原因可能有多种,其中一种可能是Flink CDC抽取的速率过快,导致大量的数据被抽取并写入到Flink中。另外,如果checkpoint设置太小,可能会导致频繁的checkpoint操作,从而增加了归档日志的大小。
为了解决这个问题,你可以尝试以下方法:
Oracle归档日志一天内快速增长到15G,可能是由于Flink CDC的一些配置不合理。在使用Flink CDC采集Oracle数据库时,需要正确配置相关参数,例如读取模式、批量读取大小、读取时间间隔等。此外,Flink CDC是基于Debezium的LogMiner实现,它需要使用Oracle的归档日志和补充日志来获取变更数据。
如果出现了binlog日志归档的问题,可能会导致CDC无法正常工作。在这种情况下,可以采取以下两种措施:手动归档日志以释放空间,让Oracle继续写入归档日志;或者配置Oracle自动归档,以确保binlog日志的正常归档。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。