一、环境准备
虚拟机版本:CentOS 7
Postgre版本:15
主数据库IP地址:192.168.2.183
从数据库IP地址:192.168.2.184
默认端口:5432

二、Postgre数据库安装
官网下载地址:https://www.postgresql.org/download/linux/redhat/
2025-03-21T02:27:59.png
安装PostgreSQL的yum仓库
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装PostgreSQL 15版本
sudo yum install -y postgresql15-server
初始化数据库(可自定义数据库存储目录)
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
设置数据开机自启
sudo systemctl enable postgresql-15
启动数据库
sudo systemctl start postgresql-15

三、主从模式部署
以下用$PGDATA代替/var/lib/pgsql/15/data/
export PGDATA=/path/to/your/postgresql/data #临时设置(仅限当前终端)

3.1主数据库(Master)配置
1、设置数据库访问权限
vim $PGDATA/pg_hba.conf

末尾添加

host replication repl 192.168.2.183/24 scram-sha-256
host all all 0.0.0.0/0 scram-sha-256
2、修改数据库配置文件
vim $PGDATA/postgresql.conf #添加或修改以下配置
listen_addresses = '*'
wal_level = replica
synchronous_commit = on
wal_log_hints = on
archive_mode = on
archive_command = 'gzip < %p > /var/lib/pgsql/15/data/pg_archive/%f.gz'
hot_standby = on
3、创建归档日志目录
mkdir -p $PGDATA/pg_archive
4、配置数据库用户信息
su postgres
psql
alter user postgres with password 'pg123456';
create role repl with login replication encrypted password 'pg123456';
\q

3.2从数据库(Standby)配置
1、删除$PGDATA目录下的所有文件
rm -rf $PGDATA/*
2、同步主数据库$PGDATA
chmod 0700 $PGDATA
su postgres
pg_basebackup -Fp --progress -D $PGDATA -R -h 192.168.2.183 -p 5432 -U repl --password
3、创建文件standby.signal
vim $PGDATA/standby.signal
standby_mode = on #on为从库
primary_conninfo = 'host=192.168.2.183 port=5432 user=repl password=pg123456'
recovery_target_timeline = 'latest'

四、验证主从状态
4.1主数据库状态验证
su postgres
psql postgres
select client_addr,sync_state from pg_stat_replication;
2025-03-21T02:29:05.png
\x on
select * from pg_stat_replication;
2025-03-21T02:29:18.png
/usr/pgsql-15/bin/pg_controldata --pgdata=$PGDATA
2025-03-21T02:29:32.png

4.2从数据库状态验证
/usr/pgsql-15/bin/pg_controldata --pgdata=$PGDATA
2025-03-21T02:29:48.png

添加新评论