在 Linux 上恢复 GitLab 数据,通常取决于你之前是否有备份以及 GitLab 的安装方式(Omnibus / 源码 / Docker)。下面按最常见、最安全的方式说明。
GitLab 默认备份目录:
/var/opt/gitlab/backups
查看是否有备份文件:
ls -lh /var/opt/gitlab/backups
备份文件一般类似:
1690000000_2023_07_22_15.11.0_gitlab_backup.tar
gitlab-ctl stop unicorn
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
如果是老版本可能是
unicorn,新版本是puma
gitlab-rake gitlab:backup:restore BACKUP=1690000000_2023_07_22_15.11.0
⚠️ 注意:
BACKUP= 只写 时间戳前缀.tar备份中通常不包含 /etc/gitlab
手动恢复:
cp /path/to/backup/gitlab.rb /etc/gitlab/gitlab.rb
cp /path/to/backup/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json
然后:
gitlab-ctl reconfigure
gitlab-ctl start
gitlab-rake gitlab:check SANITIZE=true
docker cp 1690000000_gitlab_backup.tar gitlab:/var/opt/gitlab/backups/
docker exec -it gitlab bash
gitlab-rake gitlab:backup:restore BACKUP=1690000000
但以下情况可能还有救:
gitlab-ctl reconfigure
gitlab-ctl restart
路径:
/var/opt/gitlab/git-data/repositories
如果有:
✅ 可直接挂载恢复
/var/opt/gitlab/postgresql
可尝试专业数据恢复(风险高)
gitlab-rails console
重新生成或让用户重新添加
重新注册:
gitlab-runner register
⚠️ 备份只能恢复到相同或更高版本 不能跨大版本降级
# 每天自动备份
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
并定期:
/etc/gitlab如果你能告诉我:
我可以给你更精确的一步一步命令。