使用 Docker 搭建 PostgreSQL 12 主从环境

本文介绍如何使用Docker部署一个包含主从复制的PostgreSQL数据库集群。通过创建必要的目录、设置文件权限、配置PostgreSQL参数及使用Docker运行主节点与从节点等步骤,实现了PostgreSQL的高可用性和数据同步。

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

mkdir -p /data/psql/{master,slave,repl}
chown 999:999 /data/psql/{master,slave,repl}
docker run --name "psql-master" -d -e "POSTGRES_PASSWORD=postgres" -v /data/psql/master:/var/lib/postgresql/data postgres:12
docker exec -ti psql-master psql -U postgres -c "CREATE ROLE slave_user WITH LOGIN REPLICATION CONNECTION LIMIT 5 PASSWORD 'slave_user';"
echo "host replication slave_user 0.0.0.0/0 md5" >> master/pg_hba.conf
vi master/postgresql.conf # archive_mode = on && archive_command = '/bin/date'
docker restart psql-master
docker run -d --name "psql-slave" -e "POSTGRES_PASSWORD=postgres" -v /data/psql/slave/:/var/lib/postgresql/data -v /data/psql/repl:/var/lib/postgresql/repl --link psql-master postgres:12
docker exec -ti psql-slave pg_basebackup -R -D /var/lib/postgresql/repl -Fp -Xs -v -P -h 172.18.0.101 -p 5432 -U repuser
docker rm -f psql-slave
rm -rf slave/
mv repl slave
cat slave/postgresql.auto.conf
docker run -d --name "psql-slave" -e "POSTGRES_PASSWORD=postgres" -v /data/psql/slave/:/var/lib/postgresql/data --link psql-master postgres:12
ps -aux | grep postgres
docker exec -ti psql-master psql -U postgres -c 'select * from pg_stat_replication;'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值