如何在postgresql docker容器中运行pg_倒带

如何在postgresql docker容器中运行pg_倒带,postgresql,Postgresql,我也有同样的问题。在docker容器中运行带有官方PostgreSQL docker映像的PostgreSQL复制集群,现在正试图找到一种进行故障切换的方法 在未停止PostgreSQL服务的情况下,对上一个主容器运行pg_revend时,会出现以下故障: pg_rewind: fatal: target server must be shut down cleanly 但如果我跑步: docker exec <container-name> pg_ctl stop -D <

我也有同样的问题。在docker容器中运行带有官方PostgreSQL docker映像的PostgreSQL复制集群,现在正试图找到一种进行故障切换的方法

在未停止PostgreSQL服务的情况下,对上一个主容器运行
pg_revend
时,会出现以下故障:

pg_rewind: fatal: target server must be shut down cleanly
但如果我跑步:

docker exec <container-name> pg_ctl stop -D <datadir>
docker exec pg_ctl stop-D

由于重新启动策略,容器被重新启动
,除非我自己找到了答案

只需停止现有容器并使用相同的映像和卷装载在新容器中运行命令,如:

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'