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.创建归档文件夹
mkdir /data/master-data/pg_wal_bak |
3.修改配置文件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' |
4.修改pg_hba.conf,允许备份服务器连接
vim /data/masret/pg_hba.conf
host replication dwfbak 0.0.0.0/0 md5 |
5.重启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; |
得到备份数据库当前复制信息