使用docker部署pg集群(postgresql+postgis+pgrouting+pgpool)
1,安装docker
yum install docker
2,拉取docker容器
docker pull hub-mirror.c.163.com/bitnami/postgresql-repmgr:15
docker pull hub-mirror.c.163.com/bitnami/pgpool:latest
3,启动数据库
1,创建文件夹并赋予权限
cd /
mkdir data
cd data
mkdir repmgr1
mkdir repmgr2
chmod 777 /data/repmgr1
chmod 777 /data/repmgr2
2,创建docker网络
docker network create pg-network
3,启动数据库
docker run -v /data/repmgr1:/bitnami/postgresql --detach --restart always --name pg-0 -p 30350:5432 --network pg-network --env REPMGR_PARTNER_NODES=pg-0,pg-1 --env REPMGR_NODE_NAME=pg-0 --env REPMGR_NODE_NETWORK_NAME=pg-0 --env REPMGR_PRIMARY_HOST=pg-0 --env REPMGR_PASSWORD=123456 --env POSTGRESQL_PASSWORD=123456 hub-mirror.c.163.com/bitnami/postgresql-repmgr:15
docker run -v /data/repmgr2:/bitnami/postgresql --detach --restart always --name pg-1 -p 30351:5432 --network pg-network --env REPMGR_PARTNER_NODES=pg-0,pg-1 --env REPMGR_NODE_NAME=pg-1 --env REPMGR_NODE_NETWORK_NAME=pg-1 --env REPMGR_PRIMARY_HOST=pg-0 --env REPMGR_PASSWORD=123456 --env POSTGRESQL_PASSWORD=123456 hub-mirror.c.163.com/bitnami/postgresql-repmgr:15
4,查看运行状态
docker ps -a
4,启动pgpool
docker run --detach --restart always --name pgpool -p 9999:5432 \
--env PGPOOL_BACKEND_NODES=0:pg-0:30350,1:pg-1:30351 \
--env PGPOOL_SR_CHECK_USER=postgres \
--env PGPOOL_SR_CHECK_PASSWORD=123456 \
--env PGPOOL_ENABLE_LDAP=no \
--env PGPOOL_POSTGRES_USERNAME=postgres \
--env PGPOOL_POSTGRES_PASSWORD=123456 \
--env PGPOOL_ADMIN_USERNAME=postgres \
--env PGPOOL_ADMIN_PASSWORD=123456 \
--add-host=pg-0:10.10.10.130 \
--add-host=pg-1:10.10.10.130 \
hub-mirror.c.163.com/bitnami/pgpool:latest
5,添加pgrouting
1,进入docker容器内
docker exec -u 0 -it pg-0 /bin/bash
docker exec -u 0 -it pg-1 /bin/bash
2,复制pgrouting文件到指定路径
1,上传文件到 /data/repmgr1 和 /data/repmgr1
下载地址 https://wwpm.lanzouj.com/iyjJ311crw5e
2,容器内执行命令
cp -r /bitnami/postgresql/pgrouting/lib/. /opt/bitnami/postgresql/lib
cp -r /bitnami/postgresql/pgrouting/share/extension/. /opt/bitnami/postgresql/share/extension/
6,pgpool添加用户
1,进入docker容器内
docker exec -u 0 -it pgpool /bin/bash
2,执行命令
pg_enc --key-file=/opt/bitnami/pgpool/conf/.pgpoolkey -m -f /opt/bitnami/pgpool/conf/pgpool.conf -u username password
username 是用户名
password 是密码 如果密码带有特殊符号需要转义 如 Yhsncy%#$# 转义为 Yhsncy\%\#\$\#
- 集群 postgresql pgrouting postgis docker集群postgresql pgrouting postgis postgresql postgis ubuntu postgresql postgis ubuntu 18.04 postgresql centos7 postgis centos postgresql插件postgis数据库 postgresql ogr命令postgis timescaledb postgresql插件postgis postgresql postgis pgsql postgresql postgis centos7 centos postgresql postgis3 centos7 postgis