centos7搭建postgresql主从(主备)架构

本文详细介绍了如何在CentOS7系统中搭建PostgreSQL的主备集群,实现高可用(HA)架构。首先规划了节点,然后分别在主库和备库上安装PostgreSQL,修改配置文件如postgresql.conf和pg_hba.conf,设置流复制参数。接着在主库创建复制用户,通过pg_basebackup命令进行数据同步,并赋予相应权限。最后,启动服务并验证主从库的数据同步状态,同时配置服务自启动,确保系统的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇介绍如何在centos7系统搭建一个postgresql主备集群实现最近的HA(高可用)架构。后续更高级的HA模式都是基于这个最基本的主备搭建。

节点规划

ip 主机名 用途
192.168.182.4 node1 主库(读写)
192.168.182.5 node2 备库(只读)

安装PG

在主、备两台节点分别安装好pg11。

参考我的另一篇文章:
https://blog.youkuaiyun.com/IndexMan/article/details/131646090

配置主从

4主库执行,以下操作无特殊情况在postgres用户下执行

  • 修改postgresql.conf,修改如下配置项:
# 在文件中修改(此配置仅用于远程访问, 流复制后续还有额外配置):
listen_addresses = '*'
port = 15432
max_connections = 1500       # 最大连接数,据说从机需要大于或等于该值
wal_level = replica
max_wal_senders = 2   		#最多有2个流复制连接
wal_keep_segments = 16  	
wal_sender_timeout = 60s	#流复制超时时间
  • 修改pg_hba.conf,添加图中红框中2行配置
vim pg_hba.conf

在这里插入图片描述

  • 赋予权限(root执行)
chown -R postgres:postgres /var/run/postgresql/
  • 启动PG
pg_ctl start
  • 创建流复制用户
su - postgres
psql -h localhost -p 15432
create role replica login replication encrypted password 'abc123';
SELECT rolname from pg_roles;

从库执行

  • 赋权
chown -R postgres:postgres /var/run/postgresql/
  • 从主库复制数据文件到本地
# 先清空原有数据文件(如非空)
rm -rf /home/postgres/pgdata/*
# 执行复制
pg_basebackup -h 192.168.182.4 -p 15432 -U replica -Fp -Xs -Pv -R -D /home/postgres/pgdata

# 输入主库中创建的replica用户密码后,开始同步

在这里插入图片描述

  • 更改/home/postgres/pgdata目录权限为700
chmod -R 700 /home/postgres/pgdata/
  • 启动PG
pg_ctl start

在这里插入图片描述

验证主从

主库操作
select * from pg_stat_replication;
在这里插入图片描述
select pg_is_in_recovery();
在这里插入图片描述

  • 创建数据库、表然后插入1条数据
    在这里插入图片描述

备库执行
select pg_is_in_recovery();
在这里插入图片描述

  • 查看数据是否正常同步
    在这里插入图片描述
  • 测试插入数据
    在这里插入图片描述

配置自启动服务

主、备2台都执行

vim /usr/lib/systemd/system/postgresql-11.service
# 将PGDATA修改为: /home/postgres/pgdata

systemctl enable postgresql-11.service
systemctl start postgresql-11.service

在这里插入图片描述

  • 查看启动状态
systemctl status postgresql-11

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值