postgresql主从搭建

postgresql主从搭建

主从服务器分别安装好postgresql

主库

创建数据库热备帐号replica,密码123456为例,则执行以下命令

复制代码
create role replica login replication encrypted password '123456';

打开 pg_hba.conf 配置文件,设置 replica 用户白名单

数据库账号为 replica,从节点的 VPC IPv4 网段为 xx.xx.xx.xx/16,则在 IPv4 local connections 段添加如下内容:

复制代码
host    all             all           xx.xx.xx.xx/16         md5
允许从服务器连接到主服务器
host    replication     replica         xx.xx.xx.xx/16         md5  
允许从服务器使用replica用户复制


vim /var/lib/pgsql/15/data/postgresql.conf

找到以下参数,并将参数修改为以下内容:

listen_addresses = '*' # 设置监听的ip,* 为允许所有
wal_level = replica # wal日志写入级别,要使用流复制,必须使用replica或更高级别
full_page_writes = on # 可以防止意外宕机后部分数据无法写入
wal_log_hints = on # 没太懂这个参数的具体含义,但可能会影响后续pg_rewind的使用,所以把它打开,官方描述:also do full page writes of non-critical updates
max_wal_senders = 10 # 设置流复制链接最大值
hot_standby = on # 打开热备
wal_keep_segments = 64 # 设置流复制保留的最log数目

重启服务

systemctl restart postgresql-15.service

从库

清空从库目录

复制代码
rm -rf /var/lib/pgsql/15/data/*

使用 pg_basebackup 基础备份工具制定备份目录

复制代码
pg_basebackup -D /var/lib/pgsql/15/data -h 192.168.5.132(主节点公网IP) -p 5432 -U replica(用户) -X stream --P

修改从服务器配置文件

复制代码
vim /var/lib/pgsql/15/data/postgresql.conf

#从机信息和连接用户
primary_conninfo = 'host=192.168.5.132 user=replica password=123456'
#说明恢复到最新状态
recovery_target_timeline = latest 
#大于主节点,正式环境重新考虑此值的大小
max_connections = 120
#说明这台机器不仅可以用户数据归档,还可以用于数据查询
hot_standby = on
#流备份的最大延迟时间
max_standby_archive_delay = 30s
#向主机汇报本地状态的间隔时间
wal_receiver_status_interval = 10s
#出现错误复制,向主机反馈
hot_standby_feedback = on

在data下创建一个standby.signal文件

vim standby.signal
standby_mode = 'on'


修改目录的属组和属主
chown -R postgres.postgres /var/lib/pgsql/15/data


重启服务
systemctl restart postgresql-15.service

主库操作

复制代码
su postgres
psql
进入数据库
select * from pg_stat_replication;
看到从库信息,则主从搭建完毕
相关推荐
风哥2号40 分钟前
数据库教程FGMT52‑PostgreSQL用户权限与安全管理
数据库·postgresql
风哥2号7 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
YangYang9YangYan8 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
西安栈上月明软件科技9 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构
anxiao_m9 小时前
跨云跨机房大数据迁移怎么选?不同场景工具适配指南
数据库·云启快传
风哥2号11 小时前
数据库教程FGMT43‑MySQL性能分析与优化调整
数据库·mysql
随身数智备忘录11 小时前
财务数据分析如何与业务场景结合?财务数据分析如何从数出有据到数出有用?
数据库
这个DBA有点耶12 小时前
数据库教程:从零基础到实战的完整学习路径(2026版)
数据库·程序员·代码规范
forestsea13 小时前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
probex_13 小时前
从 ByConity 到 VictoriaMetrics:一次指标数据迁移引发的四种存储对比
数据库