docker-postgres升级11至12个postmaster问题

时间:2019-11-01 09:01:38

标签: postgresql docker pg-upgrade


我使用此https://github.com/tianon/docker-postgres-upgrade将Postgres从11版本升级到12版本,并且在升级时遇到问题,出现了错误-“邮政局长为旧集群提供服务”

这里分别为11和12使用了docker容器,在升级之前也缩小了docker服务,但是不确定为什么这个postmaster问题来了,以及如何解决这个问题。

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部分:-

Success. You can now start the database server using:

    pg_ctl -D /var/lib/postgresql/12/data -l logfile start


There seems to be a postmaster servicing the old cluster.
Please shutdown that postmaster and try again.
Failure, exiting
0a5839ad7309d6256510fe89513774a16c4f26ec6a827f9f0089fd8cc10254cb

先谢谢您。

1 个答案:

答案 0 :(得分:1)

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

另一个选项是禁用重启

docker update --restart=no $CONTAINER_ID

然后执行到容器中

docker exec -it $CONTAINER_ID bash

找到 pg_ctl 二进制文件 supostgres 用户,然后运行 ​​pg_ctl stop

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