使用 Docker 搭建 PostgreSQL 12 主从环境

本文介绍如何使用Docker部署一个包含主从复制的PostgreSQL数据库集群。通过创建必要的目录、设置文件权限、配置PostgreSQL参数及使用Docker运行主节点与从节点等步骤,实现了PostgreSQL的高可用性和数据同步。
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=pos
要在Docker上安装主从PostgreSQL,可以按照以下步骤进行操作: 1. 首先,在Docker中安装PostgreSQL。可以使用以下命令来安装PostgreSQL容器: ``` docker run --name postgres \ --restart=always \ -e TZ=Asia/Shanghai \ -e POSTGRES_PASSWORD=ly123456 \ -p 5432:5432 \ -v /data/postgresql/data:/var/lib/postgresql/data \ -d postgres ``` 这个命令将创建一个名为 "postgres" 的PostgreSQL容器,并设置了密码为 "ly123456",将PostgreSQL的数据目录挂载到宿主机的"/data/postgresql/data"路径上。 2. 然后,配置主从复制。首先,检查postgresql.auto.conf文件是否包含"primary_conninfo"配置项,其中包含了主数据库的连接信息。可以使用以下命令查看文件内容: ``` cat /data/postgresql/data/postgresql.auto.conf ``` 如果没有该配置项,可以手动添加它。在文件末尾添加以下内容: ``` primary_conninfo = 'user=syncuser' ``` 其中,"syncuser"是在主数据库上创建的用于复制的用户。 3. 接下来,创建从数据库。可以使用以下命令创建一个新的PostgreSQL容器作为从数据库: ``` docker run -d -p 54321:5432 --name postgres --restart=always -v /devel/xwq/pgsql_data_dir/d14r1n17:/var/lib/postgresql/data/ 7e309048b14d ``` 这个命令将创建一个名为 "postgres" 的从数据库容器。 4. 重新启动容器以使配置生效: ``` docker restart postgres ``` 现在,你已经成功安装了主从PostgreSQL。你可以通过连接到主数据库和从数据库来进行验证。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [使用docker搭建postgresql主从复制](https://blog.youkuaiyun.com/yyb1369584682/article/details/122498271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [docker PostgreSQL 14.1 主从配置](https://blog.youkuaiyun.com/huangwp2000/article/details/126361659)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值