PostgreSQL延迟备库

PostgreSQL延迟备库

最后编辑时间:2022年1月22日23:54:23

[postgres@rhel6lhr data]$ cat recovery.conf |grep recovery_min
recovery_min_apply_delay = 2min
[postgres@rhel6lhr data]$ pg_ctl restart
waiting for server to shut down........ done
server stopped
waiting for server to start....2020-10-26 23:37:15.975 CST [27436] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2020-10-26 23:37:15.975 CST [27436] LOG:  listening on IPv6 address "::", port 5432
2020-10-26 23:37:15.977 CST [27436] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2020-10-26 23:37:15.988 CST [27436] LOG:  redirecting log output to logging collector process
2020-10-26 23:37:15.988 CST [27436] HINT:  Future log output will appear in directory "log".
 done
server started
--主库切换wal日志
postgres=# select pg_switch_wal();
-[ RECORD 1 ]-+-----------
pg_switch_wal | 1/CF000158
postgres=# SELECT pid,usename,client_addr,state,write_lag,flush_lag,replay_lag FROM pg_stat_replication; 
-[ RECORD 1 ]----------------
pid         | 2176
usename     | repuser
client_addr | 192.168.59.172
state       | streaming
write_lag   | 00:00:00.000402
flush_lag   | 00:00:00.000697
replay_lag  | 00:02:02.77061
--可以看到这里的replay_log是
postgres=# select now(),* from test_delay;
ERROR:  relation "test_delay" does not exist
LINE 1: select now(),* from test_delay;
                            ^
postgres=# select now(),* from test_delay;
              now              | id |     create_time     
-------------------------------+----+---------------------
 2020-10-26 23:57:51.150388+08 |  1 | 2020-10-26 23:55:36
 这里也可以看到要2分钟后才能查询到
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: FlinkCDC 是 Apache Flink 的一个模块,用于实时将数据从数据的主复制到 Flink 程序中进行处理。它目前支持 MySQL 和 Oracle 数据,对于 PostgreSQL 数据不支持。 ### 回答2: Flink CDC(Change Data Capture)是一种用于实时数据流处理的开源技术,用于捕获数据源的变化并以事件流的形式传递给消费者。关于Flink CDC是否支持PostgreSQL的问题,需要分两个方面来看。 首先,Flink CDC本质上是针对数据的变化进行捕获和处理的工具,主要支持的是主动推送模式,即从数据直接获取变化数据并传递给下游应用。它的核心实现原理是基于数据的Binlog(二进制日志)的解析,而PostgreSQL并没有像MySQL或者Oracle那样的Binlog功能,因此,Flink CDC在原生状态下并不直接支持PostgreSQL。 不过,如果你希望实现基于Flink CDC的实时数据流处理,并且数据源是PostgreSQL数据,仍然可以通过一些额外的配置和技术手段来实现。比如,可以使用PostgreSQL的逻辑复制功能,定期把主的数据同步到,然后在上安装Flink CDC并配置相应的数据捕获和处理逻辑,来实现实时数据流处理。这种方式虽然需要额外的工作和配置,但可以在一定程度上满足需求。 综上所述,Flink CDC原生状态下并不直接支持PostgreSQL,但可以借助额外的配置和技术手段来实现基于Flink CDC的实时数据流处理。使用Flink CDC处理PostgreSQL需要根据具体需求进行具体分析和实施。 ### 回答3: Flink CDC(Change Data Capture)是Flink的一个功能模块,可以将源数据中的数据更改(增删改)操作通过日志方式捕获,并以数据流的形式输出给其他系统进行实时处理。 关于Flink CDC是否支持postgresql,目前还没有直接的官方支持。Flink CDC官方目前只提供了对MySQL和Oracle数据的支持。 不过,可以通过一些间接的方式来实现对postgresql的支持。例如,可以采用自定义开发的方式,编写Flink的Source Function,通过订阅postgresql的事务日志,以监听的方式将数据更改操作捕获到,并发送至Flink进行处理。 具体来说,你可以编写一个自定义的Source Function,在该函数中使用类似pg_replication_slot、pg_logical_slot等postgres的逻辑复制机制,来获取postgresql的变更操作日志,再将这些变更操作日志解析为Flink能够处理的数据流并发送至Flink进行处理。 这样一来,虽然Flink CDC并没有直接提供对postgresql的支持,但可以通过自定义开发来实现postgresql和Flink之间的联系,以实现数据的实时处理。 总之,虽然Flink CDC目前官方没有提供对postgresql的支持,但可以通过自定义开发来实现对postgresql的支持,使得Flink能够进行实时处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值