主数据库配置
1.运行主数据库
docker run -d --name pg-master \ -e POSTGRES_PASSWORD=dwf2018 \ -v /data/master-data:/var/lib/postgresql/data \ postgres:10.15
2.创建备份账户
CREATE ROLE dwfbak REPLICATION LOGIN ENCRYPTED PASSWORD 'Dwf2018!';
2.修改配置文件postgresql.conf
,添加以下行:
vim /data/master-data/postgresql.conf
wal_level = replica max_wal_senders = 5 wal_keep_segments = 32 archive_mode = on archive_command = 'cp %p /var/lib/postgresql/data/pg_wal_bak/%f'
mkdir /data/master-data/pg_wal_bak
3.修改pg_hba.conf,允许备份服务器连接
vim /data/masret/pg_hba.conf
host replication dwf 0.0.0.0/0 md5
4.重启pg-master
docker restart pg-master
备份数据库配置
1.运行备份数据库
docker run -d --name pg-slave \ -e POSTGRES_PASSWORD=dwf2018 \ -v /data/slave-data:/var/lib/postgresql/data \ postgres:10.15
2.修改配置文件postgresql.conf
,添加以下行:
vim /data/slave-data/postgresql.conf
hot_standby = on
3.创建恢复配置文件
vim /data/slave-data/recovery.conf
:
standby_mode = 'on' primary_conninfo = 'host=pg-master-ip port=5432 user=dwfbak password=Dwf2018!'
4.重启备份数据库容器:
docker restart pg-slave
验证配置
1.访问主数据库运行以下SQL命令查看复制状态:
SELECT * FROM pg_stat_replication;
得到备份数据库当前复制信息