docker - postgres 升级 11 到 12 postmaster 问题
docker - postgres upgrade 11 to 12 postmaster issue
我用这个 https://github.com/tianon/docker-postgres-upgrade 将 postgres 从 11 版本升级到 12 版本并在升级时遇到问题,出现错误 - "postmaster servicing the old cluster"
这里分别为 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
提前谢谢你。
我尝试了更长的时间 stop_grace_period 以便 postgresql 服务器在收到 SIGTERM (postgresql.org/docs/11/server-shutdown.html) 时有足够的时间停止一切。然后 postgres 停止了
问题是 postgres 服务器在 docker 终止之前没有完全关闭,但停止进程也会重新启动容器。
另一个选项是禁用重启
docker update --restart=no $CONTAINER_ID
然后执行到容器中
docker exec -it $CONTAINER_ID bash
找到 pg_ctl
二进制文件,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
我用这个 https://github.com/tianon/docker-postgres-upgrade 将 postgres 从 11 版本升级到 12 版本并在升级时遇到问题,出现错误 - "postmaster servicing the old cluster"
这里分别为 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
提前谢谢你。
我尝试了更长的时间 stop_grace_period 以便 postgresql 服务器在收到 SIGTERM (postgresql.org/docs/11/server-shutdown.html) 时有足够的时间停止一切。然后 postgres 停止了
问题是 postgres 服务器在 docker 终止之前没有完全关闭,但停止进程也会重新启动容器。
另一个选项是禁用重启
docker update --restart=no $CONTAINER_ID
然后执行到容器中
docker exec -it $CONTAINER_ID bash
找到 pg_ctl
二进制文件,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