温馨提示×

怎么迁移debian gitlab数据

小樊
45
2026-10-17 04:20:21
栏目: 智能运维

下面按常见场景给你讲如何在 Debian 上迁移 GitLab 数据。最推荐的是 官方备份恢复方式,安全且完整。


一、迁移前准备(重要)

  • 确认 源和目标 GitLab 版本一致或目标 ≥ 源版本
  • 两台机器都是 Debian
  • 记录以下信息:
    • GitLab 版本:gitlab-rake gitlab:env:info
    • 使用的存储(本地 / NFS / 对象存储)
    • 是否启用 CI、Registry、Pages

二、官方推荐方式:备份 + 恢复(最安全)

1️⃣ 在源服务器上创建备份

sudo gitlab-rake gitlab:backup:create

生成的文件在:

/var/opt/gitlab/backups/
YYYYMMDD_HHMMSS_gitlab_backup.tar

可选:只备份代码不备份 uploads(大文件)

sudo gitlab-rake gitlab:backup:create SKIP=uploads

2️⃣ 拷贝备份文件到新服务器

scp /var/opt/gitlab/backups/*.tar root@new-server:/var/opt/gitlab/backups/

3️⃣ 新服务器安装同版本 GitLab

apt-get install gitlab-ee=版本号

或

apt-get install gitlab-ce=版本号

4️⃣ 恢复备份

sudo gitlab-ctl stop unicorn puma sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=YYYYMMDD_HHMMSS
sudo gitlab-ctl restart

5️⃣ 恢复配置文件(非常关键)

源服务器:

/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json

拷贝到新服务器相同位置,然后:

sudo gitlab-ctl reconfigure

三、Docker 版 GitLab 迁移(如果你用的是容器)

docker exec -t gitlab gitlab-rake gitlab:backup:create
docker cp gitlab:/var/opt/gitlab/backups/xxx.tar .

恢复同理。


四、只迁移仓库(不推荐,容易丢数据)

如果你只想要代码:

git clone --mirror old.git
git push --mirror new.git

⚠️ 会丢失:

  • Issues
  • Merge Requests
  • CI
  • Wiki
  • 用户权限

五、大文件 / Registry 注意事项

  • GitLab Registry:需单独备份 /var/opt/gitlab/gitlab-rails/uploads
  • 对象存储(S3):只需迁移 bucket,不用备份文件

六、迁移后检查

sudo gitlab-rake gitlab:check
sudo gitlab-rake gitlab:doctor:secrets

七、常见坑

❌ 版本不一致 → 恢复失败
❌ 忘记 gitlab-secrets.json → CI/Registry 失效
❌ 权限不对 → chown git:git 备份文件


如果你愿意,可以告诉我:

  • GitLab 版本
  • 是否 Docker
  • 是否含 Registry / CI

我可以给你精确命令。

0 踩