我也有同样的问题。使用官方的PostgreSQL docker镜像在docker容器中运行postgresql复制集群,现在正在尝试一种进行故障转移的方法。
在不停止PostgreSQL服务的情况下,对上一个主容器运行pg_rewind时,会出现以下故障:
pg_rewind: fatal: target server must be shut down cleanly但是如果我运行:
docker exec <container-name> pg_ctl stop -D <datadir>由于重启策略unless-stopped,容器被重启。
发布于 2020-09-10 07:51:47
我自己找到了答案。
只需停止现有容器,并使用相同的镜像和卷挂载在新容器中运行命令,如下所示:
docker run -it --rm --name pg_rewind --network=host \
--env="PGDATA=/var/lib/postgresql/data/pgdata" \
--volume=/var/lib/postgresql/data:/var/lib/postgresql/data:rw \
--volume=/var/lib/postgresql:/var/lib/postgresql:rw \
--volume=/var/run/postgresql:/var/run/postgresql:rw \
postgres:12.4 \
pg_rewind --target-pgdata=/var/lib/postgresql/data/pgdata --source-server='host=10.0.0.55 port=5432 dbname=postgres user=replicator password=password'https://stackoverflow.com/questions/63820214
复制相似问题