在 Linux 环境下迁移 GitLab 数据,常见场景有 同版本迁移、跨版本升级迁移、整机迁移、容器迁移。下面按最稳妥、官方推荐的方式给你讲。
适用于:
# 停止相关服务(可选,保证一致性)
gitlab-ctl stop unicorn
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
# 创建备份
gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
# 类似:1690000000_2023_07_22_15.11.0_gitlab_backup.tar
scp /var/opt/gitlab/backups/*.tar root@new_server:/var/opt/gitlab/backups/
⚠️ 版本必须一致或兼容
# 查看旧版本
cat /opt/gitlab/version-manifest.txt
安装对应版本(以 Ubuntu 为例):
apt install gitlab-ee=15.11.0-ee.0
# 修改文件权限
chown git:git /var/opt/gitlab/backups/*.tar
# 恢复
gitlab-rake gitlab:backup:restore BACKUP=1690000000_2023_07_22_15.11.0
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
备份不包含:
/etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json必须手动拷贝:
scp /etc/gitlab/gitlab.rb root@new:/etc/gitlab/
scp /etc/gitlab/gitlab-secrets.json root@new:/etc/gitlab/
否则:
docker exec -t gitlab gitlab-rake gitlab:backup:create
docker cp gitlab:/var/opt/gitlab/backups /本地
docker cp 备份文件 gitlab:/var/opt/gitlab/backups
docker exec -t gitlab gitlab-rake gitlab:backup:restore BACKUP=xxx
适用于:
拷贝目录:
/var/opt/gitlab
/etc/gitlab
/var/log/gitlab
风险:版本不一致容易崩。
先在新服务器装旧版本 → 恢复 → 再升级 GitLab。
rsyncgitlab-ctl reconfigure
gitlab-ctl restart
旧机:
gitlab-rake gitlab:backup:create
拷贝 backup + gitlab.rb + secrets.json
新机:
装同版本 GitLab
恢复 backup
重启
如果你告诉我:
我可以给你精确到命令的迁移方案。