温馨提示×

CentOS如何恢复GitLab

小樊
45
2026-07-08 09:58:23
栏目: 智能运维

CentOS 上恢复 GitLab 通常分为 系统级恢复(重装系统或 GitLab 损坏)数据恢复(恢复到某一备份点) 两大类。下面按最常见、最安全的流程给你一套完整方案。


一、确认当前情况(很重要)

先判断你现在的状态:

gitlab-ctl status
rpm -qa | grep gitlab
cat /etc/gitlab/gitlab.rb | head

常见情况:

  • ✅ GitLab 还在,只是起不来 → 修复
  • ❌ GitLab 被卸载或系统重装 → 重装 + 恢复备份
  • ✅ 有备份文件 → 备份恢复
  • ❌ 没有备份 → 只能抢救数据

二、通过备份恢复(✅ 推荐,最稳妥)

1️⃣ 准备备份文件

GitLab 备份通常在:

/var/opt/gitlab/backups/

文件名示例:

1690000000_2023_07_01_gitlab_backup.tar

如果备份在别的地方,复制到该目录。


2️⃣ 安装与原来版本一致的 GitLab

⚠️ 版本必须一致(大版本+小版本)

查看原版本(如果还能看):

cat /opt/gitlab/version-manifest.txt

安装对应版本(示例:14.10.5):

yum install -y curl policycoreutils openssh-server
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

yum install -y gitlab-ce-14.10.5-ce.0.el7.x86_64

若是 CentOS 8 / Rocky / Alma,请使用 dnf


3️⃣ 初始化 GitLab(不要启动服务)

gitlab-ctl reconfigure

4️⃣ 恢复备份

gitlab-backup restore BACKUP=1690000000_2023_07_01

说明:

  • 1690000000_2023_07_01 是备份文件名去掉 _gitlab_backup.tar
  • 恢复过程中会提示是否覆盖,输入 yes

5️⃣ 恢复配置文件(非常重要)

如果没有配置文件,会出现:

  • 仓库打不开
  • CI/CD 失效
  • SSH clone 失败

恢复 /etc/gitlab/gitlab.rb

cp gitlab.rb.backup /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure

6️⃣ 修复权限 & 重启

gitlab-rake gitlab:check
gitlab-ctl restart

访问 GitLab 页面测试。


三、没有备份,只有数据目录(⚠️ 抢救)

如果你还有:

/var/opt/gitlab/

1️⃣ 全新安装 GitLab(同版本)

yum install gitlab-ce-xxxx
gitlab-ctl reconfigure

2️⃣ 停止服务

gitlab-ctl stop

3️⃣ 替换关键数据目录

mv /var/opt/gitlab /var/opt/gitlab.bak
cp -a /old/path/var/opt/gitlab /var/opt/gitlab

4️⃣ 修复权限

chown -R git:git /var/opt/gitlab

5️⃣ 启动

gitlab-ctl start

⚠️ 成功率不稳定,不建议生产环境


四、GitLab 在但起不来(修复)

1️⃣ 尝试重启

gitlab-ctl restart

2️⃣ 查看错误

gitlab-ctl tail
journalctl -xe

3️⃣ 常见修复

gitlab-ctl reconfigure
gitlab-rake db:migrate
gitlab-rake gitlab:check

五、官方推荐备份策略(防止再翻车)

# 手动备份
gitlab-backup create

# 自动备份
crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1

六、我可以更精确帮你

你可以直接告诉我以下信息(我可以一步步带你操作):

  1. CentOS 版本(6 / 7 / 8 / Rocky / Alma)
  2. GitLab 版本(能查到吗?)
  3. 是否有 /var/opt/gitlab/backups/
  4. GitLab 是否能启动
  5. 整个系统坏了还是 GitLab 升级失败

我可以给你 定制命令,不会让你误删数据 ✅

0