PostgreSQL+repmgr高可用部署

本文详细介绍了如何使用repmgr在PostgreSQL服务器上建立高可用集群,包括版本匹配、环境配置、数据库初始化、安装repmgr、配置免密、创建和注册主备库,以及主备机的切换过程。

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

REPMGR 是一套在PostgreSQL服务器集群中用于管理复制和故障转移的开源工具 。它支持并增强了PostgreSQL的 内置流式复制,提供单个读/写主服务器 以及一个或多个只读备用数据库,其中包含主数据库的近实时副本服务器的数据库。

它提供了两个主要工具:

工具 作用 具体用途
repmgr 用于执行管理任务的命令行工具 设置备用服务器,将备用服务器提升为主服务器,切换主服务器和备用服务器,显示复制群集中服务器的状态
repmgrd 主动监视复制群集中的服务器的守护程序 监视和记录复制性能,通过检测主数据库和提升最合适的备用服务器,向用户定义的群集中事件提供有关事件的通知 可以执行任务的脚本,例如通过电子邮件发送警报

01 repmgr 版本对应支持的PostgreSQL版本

02 部署环境

操作系统:Scientific Linux release 7.9 (Nitrogen)

PostgreSQL版本:PostgreSQL 15.1

repmgr版本:repmgr-5.3.3

03 安装PostgreSQL

--安装相关依赖:

yum -y install gcc gcc_c++ libyaml  python* readline readline-devel zlib zlib-devel

--关闭防火墙,设置selinux(各节点)

systemctl stop firewalld

systemctl disable firewalld

sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

--创建目录及用户

mkdir -p /data/pg15

mkdir -p /data/pgarch

mkdir -p /usr/local/pg15

useradd postgres

chown -R postgres:postgres /data

chown -R postgres:postgres /usr/local/pg15

chmod 700 /data/pg15

--源码安装PG15.2(postgres用户,所有节点)

tar -xvf postgresql-15.2.tar.gz

cd postgresql-15.2

./configure --prefix=/usr/local/pg15/

make world && make install-world

04 设置环境变量

cat .bashrc

export PGDATA=/data/pg15

export PGHOME=/usr/local/pg15/

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib

export PATH=$PATH:$PGHOME/bin/

export PGPORT=5435

source .bashrc

05 初始化数据库(主节点)

initdb -D /data/pg15

--配置pg_hba.conf

host    all        all           192.168.126.0/24   md5

local   replication   repmgr                              trust

host    replication   repmgr      127.0.0.1/32            trust

host    replication   repmgr      192.168.126.0/24          trust

local   repmgr        repmgr                              trust

host    repmgr        repmgr      127.0.0.1/32            trust

host    repmgr        repmgr      192.168.126.0/24          trust

--配置postgresql.conf

listen_addresses = '*'

port = 5435

shared_buffers = 256MB

wal_level = replica

max_wal_size = 1GB

log_destination = 'csvlog'

logging_collector = on

log_directory = 'log'

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

log_file_mode = 0600

archive_mode = on

archive_command = 'cp %p /data/pgarch/%f'

max_wal_senders = 10

max_replication_slots = 10

hot_standby = on

--启动数据库

pg_ctl start -D /data/pg15

06 设置PostgreSQL开机自启(主备相同步骤设置)

[root@pg15_rh7_132 ~]# cd /home/postgres/postgresql-15.1/contrib/start-scripts/

[root@pg15_rh7_132 ~]# cp linux /etc/init.d/postgresql

[root@pg15_rh7_132 ~]# chmod +x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值