You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenShift中通过Helm升级Gitlab时PostgreSQL升级失败

GitLab 15.11.13 升级至16.1.5 + PostgreSQL 12→13 备份上传失败问题排查

问题概述

  • 运行环境:OpenShift 4.11
  • 操作目标:通过Helm将GitLab从15.11.13升级至16.1.5,同步将PostgreSQL从12版本升级到13版本
  • 执行命令:
gitlab-studio-backup$ curl -s "https://gitlab.com/gitlab-org/charts/gitlab/-/raw/v7.1.5/scripts/database-upgrade" | bash -s -x -- -r gitlab-dev-release -n gitlab-dev pre
  • 错误表现:数据库备份完成后触发ERROR: Error parsing xml: mismatched tag: line 66, column 4,随后返回503服务不可用页面,提示备份文件/database_upgrade_6_gitlab_backup.tar上传失败,多次重试问题未解决

排查与解决方向

1. 定位并修复XML格式错误

  • 该错误直接指向备份流程中涉及的XML文件存在语法问题,重点检查:
    • GitLab备份生成的元数据XML文件,找到第66行的标签,确认是否存在未闭合标签、标签大小写不匹配(XML大小写敏感)、标签嵌套错误
    • 检查GitLab配置中涉及XML的片段(比如LDAP配置、集成服务的XML配置),是否有格式错误

2. 排查备份上传目标服务状态

  • 503服务不可用说明备份上传的接收服务(如GitLab配套的对象存储、持久化存储)异常,需:
    • 查看OpenShift命名空间gitlab-dev下的存储相关Pod(如minio、gitlab-toolbox)运行状态,检查是否有CrashLoopBackOff、存储挂载失败等异常
    • 确认存储资源(PersistentVolume、存储桶)的权限配置,确保GitLab组件有读写权限

3. 验证脚本兼容性与手动备份测试

  • 确认使用的database-upgrade脚本版本(v7.1.5)与当前GitLab 15.11.13版本的兼容性,部分跨大版本升级脚本可能存在适配问题
  • 尝试绕过自动脚本,手动执行备份流程:
    # 进入gitlab-toolbox Pod
    oc exec -it $(oc get pods -n gitlab-dev -l app=toolbox -o jsonpath='{.items[0].metadata.name}') -n gitlab-dev -- bash
    # 手动创建备份
    gitlab-backup create
    # 手动验证备份文件是否可正常上传至存储
    

4. 检查权限与资源日志

  • 确认执行脚本的账号拥有OpenShift集群中gitlab-dev命名空间的足够权限(如Pod访问、存储读写权限)
  • 查看相关组件日志:
    • gitlab-toolbox Pod日志:oc logs -n gitlab-dev <toolbox-pod-name>,获取备份过程的详细报错
    • postgresql Pod日志:oc logs -n gitlab-dev <postgresql-pod-name>,确认数据库备份过程是否正常

内容的提问来源于stack exchange,提问作者overstacker258

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:17:28