postgres 日志级别要设置成 wal_level = logical 的影响? & 物理复制和逻辑复制

文章对比了PostgreSQL的物理复制和逻辑复制两种技术。物理复制基于二进制日志的流复制能实现实时数据同步,适合高可用性需求;逻辑复制则提供更灵活的数据选择和转换,适用于复杂场景但可能带来更高延迟和资源消耗。启用复制需根据应用需求和系统配置权衡。
摘要由CSDN通过智能技术生成

物理复制和逻辑复制

物理复制和逻辑复制
概念
在这里插入图片描述
WAL
在这里插入图片描述
区别
在这里插入图片描述
在这里插入图片描述

逻辑复制

将 PostgreSQL 的日志级别设置为 wal_level = logical 会启用逻辑复制(logical replication)功能,这对于一些应用场景非常有用。

逻辑复制是一种高级的复制技术,它可以在不同的 PostgreSQL 数据库之间同步数据,甚至可以跨版本同步数据。与传统的流复制(streaming replication)相比,逻辑复制可以更加灵活地选择需要复制的表和列,也可以过滤掉不需要复制的数据。此外,逻辑复制可以在主库上执行数据转换和过滤操作,这对于一些特殊需求非常有用,例如数据仓库和实时数据分析等。

但是,启用逻辑复制也有一些缺点。首先,逻辑复制需要更多的 CPU 和内存资源,因为它需要解析和转换数据。其次,逻辑复制的延迟可能会更高,因为它需要在主库上执行额外的转换和过滤操作。最后,逻辑复制的实现相对较新,可能会有一些稳定性和兼容性方面的问题。

因此,是否要启用逻辑复制,需要根据具体的应用需求和系统配置来进行决策。如果您需要更灵活的复制选项,并且具有足够的 CPU 和内存资源,那么启用逻辑复制可能是一个不错的选择。但是,如果您对数据同步的延迟和稳定性有较高的要求,那么传统的流复制可能更适合您的需求。

流复制

PostgreSQL 的流复制(streaming replication)是一种基于二进制日志(binary log)的复制技术,它可以将一个 PostgreSQL 主库上的数据实时复制到一个或多个从库中。主库将修改后的数据写入二进制日志文件(WAL 日志),从库通过流式复制(streaming replication)将主库的 WAL 日志拷贝到本地,并将日志中的操作应用到自己的数据库中,从而实现数据的实时同步。

在 PostgreSQL 的流复制中,有两种类型的从库:

热备(Hot Standby)从库:它可以接收数据并执行只读查询,但不能执行写操作,因为所有写操作都必须在主库上执行。

流式复制(Streaming Replication)从库:它可以接收数据并执行读写操作,因为它可以像主库一样执行写操作。

流复制的优点在于它可以实现实时数据同步,并且可以在从库上执行读写操作,从而提高整个系统的可用性和性能。同时,流复制的实现非常稳定,并且已经被广泛应用于生产环境中。

要启用流复制,需要在 PostgreSQL 的配置文件中设置一些参数,例如:

主库配置

wal_level = replica
max_wal_senders = 5
wal_keep_segments = 10

从库配置

hot_standby = on
primary_conninfo = 'host=master_ip_address port=5432 user=replica password=replica_pass'

其中,wal_level 表示主库需要记录的 WAL 日志级别,max_wal_senders 表示主库可以同时发送 WAL 日志给多少个从库,wal_keep_segments 表示主库需要保留的 WAL 日志段数。而在从库中,hot_standby 表示是否启用热备功能,primary_conninfo 表示连接到主库的参数。

流复制的具体实现步骤和细节较为复杂,需要结合具体的场景进行设置和调优。但是,一旦正确配置和使用,流复制可以帮助 PostgreSQL 构建高可用、高性能的数据库系统。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值