You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 14同步异步流复制配置及备库application_name设置求助

PostgreSQL 14 新增异步备库及配置唯一application_name方案

一、新增异步模式备用服务器

1. 主库端准备(若已有复制用户可跳过)

  • 登录主库执行SQL创建复制用户:
    CREATE ROLE repl_user WITH REPLICATION LOGIN PASSWORD 'your_secure_password';
    
  • 编辑主库的/etc/postgresql/14/main/pg_hba.conf,添加新备库的访问规则:
    host    replication     repl_user     新备库IP地址/32     scram-sha-256
    
  • 重载主库配置使变更生效:
    sudo systemctl reload postgresql@14-main
    

2. 新备库端同步主库数据

在新备库服务器上执行pg_basebackup拉取主库全量数据:

pg_basebackup -h 主库IP地址 -U repl_user -D /var/lib/postgresql/14/main -P -X stream -R

参数说明:

  • -D指定备库数据目录(需确保目录为空且属主为postgres)
  • -X stream启用流式备份,避免生成过大的WAL日志文件
  • -R自动生成备库连接主库的配置参数

3. 配置异步复制关系

  • 主库端保持原有synchronous_standby_names配置(仅包含已有的同步备库),新备库不在此列表内会自动以异步模式运行
  • 新备库端确认/var/lib/postgresql/14/main/postgresql.conf中hot_standby = on已启用
  • 启动新备库服务:
    sudo systemctl start postgresql@14-main
    

二、为各备库配置唯一application_name

1. 修改现有备库的application_name

登录每个备库服务器,编辑/var/lib/postgresql/14/main/postgresql.auto.conf(PG14中备份生成的连接配置默认在此文件),找到primary_conninfo参数,添加自定义的application_name字段,示例:

primary_conninfo = 'host=主库IP地址 port=5432 user=repl_user password=your_secure_password application_name=standby_sync_01'

2. 新备库直接配置自定义application_name

完成pg_basebackup后,修改新备库的postgresql.auto.conf,在primary_conninfo中添加唯一的application_name,示例:

primary_conninfo = 'host=主库IP地址 port=5432 user=repl_user password=your_secure_password application_name=standby_async_01'

3. 使配置生效

修改完成后,重启对应备库的PostgreSQL服务:

sudo systemctl restart postgresql@14-main

验证配置

登录主库执行以下SQL,可查看所有备库的连接状态及application_name:

SELECT application_name, state, sync_state FROM pg_stat_replication;

内容的提问来源于stack exchange,提问作者Maly Mohsem Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:16:02