升级 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 即可恢复服务: