首页 > 数据库 >PostgreSQL的walsender和walreceiver进程介绍

PostgreSQL的walsender和walreceiver进程介绍

时间:2024-09-16 14:48:42浏览次数:11  
标签:WAL PostgreSQL walsender 连接 walreceiver 节点

PostgreSQL的walsender和walreceiver进程介绍

在 PostgreSQL 中,WAL (Write-Ahead Logging) 是一种用于确保数据库事务日志安全可靠的机制。WAL 是 PostgreSQL 进行数据库恢复、复制等操作的基础。walsenderwalreceiver 是 PostgreSQL 内部两个非常重要的进程,它们负责主从复制中的日志传输和应用。

walsender

walsender(WAL Sender)是运行在主节点上的进程,它负责发送WAL记录给从节点。这个进程会读取pg_xlogpg_wal目录下的WAL日志文件,并通过TCP/IP网络传输到从节点。

主要职责
  1. 传输WAL记录:读取WAL记录并将其发送给从节点的walreceiver进程。
  2. 维持心跳:确保复制连接的活跃性,避免因连接问题导致的复制中断。
  3. 管理WAL发送:基于从节点的接收和应用情况管理WAL文件的发送。
配置参数

postgresql.conf 文件中,有几个与 walsender 相关的重要配置:

max_wal_senders = 10      # 最大WAL发送进程数量
wal_level = replica       # 设定为 replica 或更高级别以启用复制
max_replication_slots = 4 # 最大复制槽数

walreceiver

walreceiver(WAL Receiver)是运行在从节点上的进程,它负责接收来自主节点的WAL记录并将其应用到从节点上去。

主要职责
  1. 接收WAL记录:通过网络从主节点的walsender接收WAL记录。
  2. 应用WAL记录:将接收的WAL记录写入磁盘,并根据需要应用到数据页上。
  3. 发送确认:向主节点发送确认消息,通知已经接收到的WAL日志位置信息。
配置参数

在从节点的 recovery.conf(或者 postgresql.auto.confstandby.signal 文件)中,定义一些与 walreceiver 相关的配置,比如主节点的连接信息:

primary_conninfo = 'host=primary_host port=5432 user=replicator password=mysecretpassword'
primary_slot_name = 'my_replication_slot'

动态协作

在主从节点间,walsenderwalreceiver 共同协作完成WAL日志的传输和应用:

  1. 连接建立:启动时,walreceiver连接到主节点,并启动walsender进程。
  2. WAL传输walsender读取WAL记录,并通过连接发送给walreceiver
  3. 确认机制walreceiver定期确认已接收和应用的WAL记录位置信息。
  4. 维护连接:通过心跳机制保持连接的稳定性。
  5. 故障情况下重连:如果连接中断,walreceiver会尝试重新连接到主节点,walsender也会重启。

总结

walsenderwalreceiver 是 PostgreSQL 主从复制中关键的进程,它们负责WAL日志的传输和应用。

标签:WAL,PostgreSQL,walsender,连接,walreceiver,节点
From: https://blog.csdn.net/lee_vincent1/article/details/142302724

相关文章

  • PostgreSQL数据库大版本升级
    简介该文档中描述的方式针对源码安装的数据进行升级操作过程1.说明 a.当前数据库版本为11.22,升级后为15.82.备份原数据库3.安装目标版本[root@olinux73_modelsws]#tar-zxfpostgresql-15.8.tar.gz[root@olinux73_modelsws]#cdpostgresql-15.8/[root@olinux73......
  • 通过脚本自动部署PostgreSQL数据库
    说明该脚本部署的pg数据库为源码通过编译安装的方式执行过程[root@olinux73_model~]#chmod+x./install.sh[root@olinux73_model~]#./install.sh####清理环境####关闭防火墙####关闭Selinuxsetenforce:SELinuxisdisabled####设置PG环境变量PGBASE=/u01/appFILE_CO......
  • 在Ubuntu 20.04上安装PostgreSQL的方法【快速入门】
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。简介PostgreSQL,或者简称为Postgres,是一个关系型数据库管理系统,提供了SQL查询语言的实现。它符合标准,并具有可靠的事务和并发性等许多高级功能,而无需读取锁定。本指南演......
  • postgresql-patroni高可用安装部署
    简介patroni+etcd,算是目前比较主流的PG高可用搭配了。patroni都出4.0版本了,一直没时间,断断续续写了好久,最近有人问到,那就当作一个笔记发表吧,自行搭建一个测试库做测试吧。来来回回改了好几遍。文中可能不妨地方没有同步修改的遗漏点。集群规划hostname/ip部署软件备注配置etcd1/......
  • 【PostgreSQL】安装及创建空间数据库
    简介PostgreSQL是一个功能强大的开源对象关系数据库系统下载地址PostgreSQL:Downloads由于我电脑上安装的是arcgispro3.1所以需要下载对应的postgresql版本PostgreSQL12对应的PostGIS版本主要是3.5.0或更高版本。安装一般设置为postgresql安装扩......
  • openGauss和PostgreSQL差异对比
    检查点在PostgreSQL中的检查点叫全量检查点,执行时会将buffer中的所有的脏页刷到磁盘,需要在一定时间内完成刷脏页的操作,导致数据库运行性能波动较大。同时全量检查点开始时需要遍寻内存中的所有脏页,内存越大,寻找脏页的时间也越长,具体过程如下:遍历所有BUFFER,将当前时刻的所有脏块状态......
  • PDshell16逆向PostgreSQL 工程显示字段comment备注
    现状:当刚逆向成功的表结构是没有原来表结构中的,comment备注如下 然后pd逆向工程的sql已经返回了这个备注的含义 解决方案:1、设置显示注释列tools——DisplayPreferences…如下    勾选-按照下面得方式勾选这三个 复制这里的VBS脚本,打开菜单Tools>Execute......
  • Power Designer 连接 PostgreSQL 逆向工程生成pd表结构操作步骤以及过程中出现的问题
    、使用PowerDesigner16.5链接pg数据库1.1、启动PD.选择CreateModel…。 1.2、选择Modeltypes/PhysicalDataModelPhysicalDiagram:选择pgsql直接【ok】  1.3、选择connect在工具栏选择Database-Connect…快捷键:ctrl+shift+N.如下图:  1.4、选择配置连接......
  • 使用python进行PostgreSQL 数据库连接
    使用python进行PostgreSQL数据库连接PostgreSQL数据库是最常用的关系型数据库之一,最吸引人的一点是它作为开源数据库且具有可拓展性,能够提供丰富的应用。运用python可以很简单的建立PostgreSQL数据库连接,其中最受欢迎的就是psycopg。1.安装psycopg2Psycopy是针对python的Po......
  • 精通PostgreSQL:解锁高效数据库管理的十大必备技巧与最佳实践
     作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客目录前言:正文:一.用户管理1.创建账号2.设置只读权限3.设置可操作的数据库4.授权可操作的模式和权限--......