从 Postgres 13 升级到 15 失败 - 目前导致论坛无法使用

大家好,

当我尝试运行重建以升级到最新的测试通过版本时,我遇到了以下错误。这包括将 postgres 版本从 13 升级到 15。

[2025-03-12T20:49:22.045226 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/15/main/pg_hba.conf
I, [2025-03-12T20:49:22.045431 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-03-12T20:49:22.045624 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\\/128.*$) with host all all ::/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-03-12T20:49:22.045816 #1]  INFO -- : 
> if [ -f /root/install_postgres ]; then
  /root/install_postgres 
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 
fi

initdb: warning: enabling "trust" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
W: https://dl.yarnpkg.com/debian/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
debconf: delaying package configuration, since apt-utils is not installed
cp: cannot stat '/etc/postgresql/13/main/*': No such file or directory

脚本在此复制命令处卡住。

当我尝试重启论坛时,重启命令成功完成,但论坛显示“连接被拒绝”。

我该如何回滚到使用我的 postgres 13 备份,或者如何继续进行?谢谢。

在更聪明的人来帮忙之前,请参阅有关 PostgreSQL 升级的此主题:

4 个赞

您可以创建一个全新的服务器并导入备份。

1 个赞

如果可能的话,我想避免这种情况

2 个赞

这是最简单的解决方案。

重新启动旧容器。您将拥有您的论坛。您可以随意让新服务器正常运行。

重启容器时,由于其处于数据库版本之间的间歇状态而无法运行。我已删除 postgres_data 文件夹,现在正在从备份进行恢复。

您的服务器规格是什么?如果使用 Ubuntu LTS,您的服务器版本是哪个?

1 个赞

你成功恢复了网站吗?

如果你确实运行的是旧版操作系统和 Docker 版本,我建议在重试重建之前更新两者。

你是否在更新一个大型数据库?如果是,那么更新可能仍在进行中。在重建过程中,你可以定期比较 postgres_datapostgres_data_new 目录的大小。如果 postgres_data_new 的大小持续增长,则表示更新仍在进行中。(你也可以从进程列表中确认 pg_upgrade 命令是否正在运行。)


你现在可以暂时忽略这个 cp 错误。即使出现同样的错误,我也成功更新了一个测试站点,该站点是标准安装的。(这是由上游更改引起的,所以我们会修复镜像以消除该错误,但除非事先对 postgres 配置进行了重大修改,否则它不应破坏数据库更新。)

5 个赞

您好,

是的,我已经恢复了网站。我们确实在更新一个大型数据库,但我一直在关注上述目录,以确保postgres_data_new在增长。经过一段时间,它不再增长,脚本就在这个命令上卡住了。

我们的配置非常标准,除了数据库的大小较大。我会整理详细信息,并在今天晚些时候发布这些细节。

1 个赞