Postgresql docker-postgres将11版升级至12版

Postgresql docker-postgres将11版升级至12版,postgresql,docker,pg-upgrade,Postgresql,Docker,Pg Upgrade,我用它将postgres从11版升级到12版&升级时遇到问题,出现错误-“postmaster为旧集群提供服务” 这里分别使用11和12英寸的docker容器,在升级之前也缩小了docker服务的规模,但不确定为什么会出现这个邮局主管问题以及如何解决这个问题 docker run --rm \ -v aip-pgs-data:/var/lib/postgresql/$OLD/data \ -v aip-pg12-data:/var/lib/postgresql/$NEW/data


我用它将postgres从11版升级到12版&升级时遇到问题,出现错误-“postmaster为旧集群提供服务”

这里分别使用11和12英寸的docker容器,在升级之前也缩小了docker服务的规模,但不确定为什么会出现这个邮局主管问题以及如何解决这个问题

docker run --rm \
    -v aip-pgs-data:/var/lib/postgresql/$OLD/data \
    -v aip-pg12-data:/var/lib/postgresql/$NEW/data \
    "tianon/postgres-upgrade:$OLD-to-$NEW"
以上docker运行cmd部分日志:——


先谢谢你

我尝试了更长的停止时间,以便postgresql server在收到SIGTERM(postgresql.org/docs/11/server shutdown.html)时有足够的时间停止一切。然后postgres停止了

问题是postgres服务器没有在docker杀死它之前完全关闭,但是停止进程也会重新启动容器

另一个选项是禁用重新启动

docker update --restart=no $CONTAINER_ID
然后将exec放入容器中

docker exec -it $CONTAINER_ID bash
找到
pg_-ctl
binary,
su
postgres
用户,然后运行
pg_-ctl-stop

# which pg_ctl
/usr/lib/postgresql/12/bin/pg_ctl
# su postgres
$ /usr/lib/postgresql/12/bin/pg_ctl stop

“请关闭该邮局主管,然后再试一次。”-您是否尝试过按要求关闭旧邮局主管?@RichardHuxton在运行上述“tianon/postgres upgrade”docker运行之前,我已将postgres docker服务扩展为0 like(docker service scale pgs=0),但仍然抛出原因是什么。。?我做错了吗。。?或者以任何其他方式阻止邮局主管..?似乎你需要停止v11,而不是执行
docker service scale pgs=0
container@RichardHuxton我已经试过了,但在手动停止docker容器后仍然会出现如下错误。错误-:@RichardHuxton我已经试过了,但在手动停止docker容器后仍然会出现如下错误。错误:-
# which pg_ctl
/usr/lib/postgresql/12/bin/pg_ctl
# su postgres
$ /usr/lib/postgresql/12/bin/pg_ctl stop