🛠️ 第一步:在旧服务器生成完整 GitLab 备份
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
sudo gitlab-backup create
完成后查看:
sudo ls -lh /var/opt/gitlab/backups/
示例文件:
1737000000_2026_01_21_17.8.2_gitlab_backup.tar
🛠️ 第二步:备份 GitLab 配置与密钥(必须)
sudo cp /etc/gitlab/gitlab.rb /var/opt/gitlab/backups/
sudo cp /etc/gitlab/gitlab-secrets.json /var/opt/gitlab/backups/
🛠️ 第三步:打包备份文件(便于传输)
sudo tar -czvf gitlab_full_backup_17.8.2.tar.gz \
/var/opt/gitlab/backups \
/etc/gitlab/gitlab.rb \
/etc/gitlab/gitlab-secrets.json
🛠️ 第四步:传输到新服务器(rsync 推荐)
rsync -avz -e "ssh -p 34343" gitlab_full_backup_17.8.2.tar.gz root@127.0.0.1:/home/root/
🛠️ 第五步:新服务器安装 同版本 GitLab(强制一致)
⚠️ 必须安装 17.8.2-ce.0
Ubuntu / Debian:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install gitlab-ce=17.8.2-ce.0
sudo apt-mark hold gitlab-ce
🛠️ 第六步:停止新服务器 GitLab 服务
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
🛠️ 第七步:解包迁移数据
sudo tar -xzvf gitlab_full_backup_17.8.2.tar.gz -C /
🛠️ 第八步:修正备份权限
sudo chown git:git /var/opt/gitlab/backups/*.tar
🛠️ 第九步:执行 GitLab 恢复(关键)
sudo gitlab-backup restore BACKUP=1737000000_2026_01_21_17.8.2
(替换为你的真实备份文件名)
🛠️ 第十步:重新加载 & 启动 GitLab
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
🛠️ 第十一步:健康检查
sudo gitlab-rake gitlab:check SANITIZE=true