升级 Debian 后 GitLab PostgreSQL 无法启动的解决方法

本文将介绍在升级 Debian 系统后,GitLab 的 PostgreSQL 数据库无法正常启动的问题。

#背景前提

本文的 GitLab 是基于官方源安装的,具体安装和升级方法限于篇幅,不再阐述。

我们从 Debian 11 升级到 Debian 12 后,再更新 GitLab 会发现如下报错:

或者从 Debian 12 升级到 Debian 13 后更新 GitLab 也会有如下报错:

我们以 Debian 13 为例,可以看到系统自带的 glibc 版本为 2.41:

而 Debian 12 自带的 glibc 版本为 2.36:

Debian 11 的 glibc 版本为 2.31:

所以我们直接升级系统以后 GitLab 的 PostgreSQL 数据库仍使用旧版本的排序规则,导致版本不匹配,所以 GitLab 升级会失败。

#解决方法

我们以 Debian 11 升级到 Debian 12 后的情况举例,首先备份一下 GitLab:

然后我们进入 GitLab 的 PostgreSQL 控制台:

接着重新建立索引并修复 gitlabhq_production 数据库:

重建完成后输入 \q 并按回车退出,然后我们修复 template1 和 postgres 数据库:

修复完成后验证结果:

如果出现如下结果,则修复完成:

然后我们就可以重新配置 GitLab 并更新升级了:

完成以后重启 GitLab 即可恢复服务: