各位大佬,oracle cdc使用的时候因为数据变化量比较大导致在flink同步的时候,整个oracle被拖的非常慢,这个有什么比较好的解决方案吗?oracle cdc是不是本身就不是很健全,要做oracle的实时同步有什么比较好方式吗
Oracle CDC提供了两种工作模式,读取全量数据+增量变更数据、只读取增量变更数据。并且可以保证Flink CDC框架均保证一条不多一条不少的Exactly-Once的处理。这个时候可以选择第二种模式,只读取增量变更数据进行处理。
使用GoldenGate来进行读写分离,在线实时供给,这样就可以让传输的数据量降低,提高运行效率。
GoldenGate可以用于多种不同的操作系统平台(Unix、Linux、Windows)和多种不同数据库系统(如Oracle、SQL Server、MySQL、DB2等)之间的数据同步,是极优秀的数据集成产品。 GoldenGate是Oracle在数据迁移和数据同步方面要重点发展的产品,功能强大,可以跨平台,跨数据库。应用场景很多:可以做数据库同步; 容灾备份; 实现读写分离,实时数据库仓库供给,负载均衡等等。 相比DataGuard传输整个日志文件相比,GoldenGate传输的数据量大大降低;同时,目标数据库是出于Open状态,所占系统资源较少,对网络 带宽要求更低;与Streams相比,GoldenGate也支持一对多,多对一,双向复制等。
可以使用在线挖掘的模式,不写入数据字典到 redo log 中,但是这样无法处理 DDL 语句(但是对于生产环境,一般不会进行 DDL 操作,业务上也仅需要捕捉 DML 操作即可)。生产环境默认策略读取 log 较慢,且默认策略会写入数据字典信息到 redo log 中导致日志量增加较多,可以添加如下 debezium 的配置项。 'log.mining.strategy' = 'online_catalog','log.mining.continuous.mine' = 'true'。如果使用 SQL 的方式,则需要在配置项中加上前缀 'debezium.',即: 'debezium.log.mining.strategy' = 'online_catalog', 'debezium.log.mining.continuous.mine' = 'true'
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。