PostgreSQL 实时复制+CDC

1 基本概念

PostgreSQL数据库复制功能是指实时保持PostgreSQL主从库数据一致,同时从库可以提供查询服务降低主库负载。

CDC(Change Data Capture)变化数据捕获的简称,用于实时捕获PostgreSQL数据库变化数据,并将捕获的数据向其它数据库(同构或异构)或应用系统同步。

Beedup提供PostgreSQL数据库复制与CDC一体化方案,通过解析PostgreSQL数据库的wal日志,将解析的结果数据封装为DML或DDL并按照事务单元在目标库执行,实时保持主从库数据一致。复制的同时软件在从库额外创建数据变化轨迹表,通过将日志解析的每一条数据顺序存入轨迹表提供CDC服务,第三方程序通过读取该表记录即可实现增量数据采集。

2 操作配置

2.1 数据库参数

打开主库配置文件postgresql.conf,进行如下设置:

开启归档

archive_mode = on

wal日志级别设置为replica或logical

wal_level = replica  

保存设置后重新启动PostgreSQL数据库。

2.2 复制任务设置

整库复制

启动Beedup程序,新建复制任务,在弹出的对话框中依次设置主库和从库连接参数,勾选【全量复制】选项,操作如下:

启用CDC

选择【集成】按钮,在弹出的【集成选项】对话框中勾选【变化跟踪】,操作如下:

选择【返回】按钮关闭【集成选项】对话框,选择【确定】按钮完成任务设置。

2.3 运行复制任务

启动任务,首先复制主库历史数据到从库,历史数据复制完成后,任务自动进入增量复制模式,当主库执行DML或DDL操作时,复制任务通过读取解析主库wal日志数据,还原为DML或DDL并在从库执行,开启CDC时,复制任务会将解析的数据顺序写入变化轨迹表。

下图显示增量数据复制结果,pgAdmin中显示当主库新增三条数据后可在从库查询对应数据,Beedup日志窗口显示在从库执行的DML操作,Beedup预览对话框显示从库CDC表对应的数据,包含变更数据日志序列号(wal_lsn)、变更数据对应的DML类型(ins/upd/del),数据变更事务时间等信息。

3 运维管理

3.1 数据一致性

Beedup支持主从表的差异比对及回补功能,确保数据完全一致。

右键点击Beedup左侧窗口中的数据库表节点,弹出的快捷菜单

从中选择【差异比对】,即可对主从表进行比对效验。

从中选择【差异回补】,程序会根据数据比对结果更新从表数据。

3.2 数据操作分析

Beedup提供数据操作分析功能,可以显示最近10日主库中活跃度前10的表每日更新操作统计,如下图:

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL 是一个开源的关系型数据库管理系统,它提供了ACID事务支持和高度可扩展性。它是许多企业和组织使用的首选数据库之一。而Flink是一个用于大规模数据处理和分析的开源流处理框架,可以实时处理和分析大量的数据流。CDC是Change Data Capture(数据变更捕获)的缩写,是一种用于捕获和传送数据库变更的技术。 PostgreSQL CDC是一种将数据库变更实时捕获并传送到其他系统的技术。它可以用于实时数据分析、数据同步和数据复制等场景。Flink提供了与PostgreSQL CDC集成的功能,通过Flink的CDC connector可以捕获PostgreSQL数据库的数据变更,并实时处理这些变更。 使用Flink的PostgreSQL CDC功能,可以将数据变更捕获成流,并进行实时的数据处理和分析。当PostgreSQL中的数据发生变更时,例如插入、更新或删除操作,Flink将会实时获取这些变更,并将其转换成流数据进行处理。这样,我们就可以实时对数据库变更进行监控、实时计算或者实时分析等操作。 通过将PostgreSQL CDC与Flink结合使用,可以实现实时的数据处理和分析,具有低延迟和高吞吐量的特点。这对于一些要求实时更新的应用场景非常有用,例如实时报表生成、实时数据仪表盘、实时监控和实时通知等。 总之,PostgreSQL CDC与Flink的集成使得我们能够实现对PostgreSQL数据库的实时数据捕获和处理,为实时数据分析和应用提供了便利。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值