FLINKCDC连接oracle导致归档日志暴增

前言

前段时间再用flinkcdc连接oracle的时候,oracle的归档日志疯狂的飙升,我经常去到归档目录下查看占用的内存情况。。

情况

在使用flinkcdc连接oracle的时候,发现归档日志飙升,查看了很多文档,该配置了都配置了,

# 连接状态的时候,回一直飙升
root@1b612c91b33b:/u01/app/oracle/archive# du -h
674M    .

flinkcdc程序

        Properties properties = new Properties();
        properties.setProperty("debezium.database.tablename.case.insensitive", "false");
        properties.setProperty("debezium.log.mining.strategy", "online_catalog");
//        properties.setProperty("database.tablename.case.insensitive", "false");
//        properties.setProperty("log.mining.strategy", "online_catalog");
        //持续挖掘日志
        properties.setProperty("debezium.log.mining.continuous.mine", "true");
        SourceFunction<String> sourceFunction = OracleSource.<String>builder()
                .hostname("192.168.1.9")
                .port(1521)
                .database("XE") // monitor XE database
                .schemaList("flinkuser") // monitor inventory schema
                .tableList("flinkuser.SYS_USER") // monitor products table
                .username("flinkuser")
                .password("flinkpw")
                .startupOptions(StartupOptions.initial())
                .debeziumProperties(properties)
                .deserializer(new JsonDebeziumDeserializationSchema()) // converts SourceRecord to JSON String
                .build();
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        DataStreamSource<String> sourceStream = env.addSource(sourceFunction).setParallelism(1);// use parallelism 1 for sink to keep message ordering
        SingleOutputStreamOperator<String> streamOperator = sourceStream
                .filter(StringUtils::isNotEmpty);
        streamOperator.setParallelism(1).print();
         env.execute();

问题解决

问题是怎么解决的呢,将flinkcdc的代码修改一下,,

        properties.setProperty("debezium.database.tablename.case.insensitive", "false");
        properties.setProperty("debezium.log.mining.strategy", "online_catalog");
		换成下面两句。。
        properties.setProperty("database.tablename.case.insensitive", "false");
         properties.setProperty("log.mining.strategy", "online_catalog");

一些文章中,都会在配置文件上带上debezium的。。。而这种时候是不需要这个前缀的

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库归档暴增时,可以采取以下改进措施来应对: 1. 增加归档日志文件大小:适当增加归档日志文件的大小可以减少频繁的切换和生成归档日志文件的次数。这可以通过修改参数`LOG_ARCHIVE_MAX_SIZE`来实现。 ``` ALTER SYSTEM SET LOG_ARCHIVE_MAX_SIZE= <size>; ``` 其中,`<size>`是指定的归档日志文件大小,以字节为单位。 2. 优化数据库操作:归档暴增可能是由于数据库操作导致的。优化SQL语句、索引和查询计划,以减少数据库操作的次数和数据量。使用合适的索引和分区策略,可以提高查询性能和减少数据写入。 3. 定期备份和清理归档日志:定期备份和清理归档日志可以防止归档日志无限增长。使用RMAN工具设置自动备份和清理策略,以便将归档日志备份到磁盘或磁带,并删除过期的归档日志文件。 4. 检查是否有长时间运行的事务或会话:长时间运行的事务或会话可能会导致归档暴增。通过监视和终止长时间运行的事务或会话,可以减少归档负载。 5. 调整日志刷新频率:通过修改参数`LOG_CHECKPOINT_TIMEOUT`和`LOG_CHECKPOINT_INTERVAL`来调整日志刷新频率,以减少归档日志的生成次数。 ``` ALTER SYSTEM SET LOG_CHECKPOINT_TIMEOUT= <timeout>; ALTER SYSTEM SET LOG_CHECKPOINT_INTERVAL= <interval>; ``` 其中,`<timeout>`和`<interval>`分别指定了日志刷新的超时时间和间隔,以秒为单位。 6. 监视和调整归档参数:定期监视和调整与归档相关的参数,例如归档日志的生成速率、归档目标和归档模式等。根据实际需求和数据库负载,适时调整这些参数以优化归档性能。 以上措施可以帮助您应对Oracle数据库归档暴增的问题。根据具体情况,您可能需要结合实际需求和资源状况来选择适用的改进措施。同时,建议在进行任何更改之前先进行充分的测试和备份,以确保数据的安全性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值