温馨提示×

debian gitlab怎么迁移数据

小樊
45
2026-09-23 18:58:01
栏目: 智能运维

在 Debian 上迁移 GitLab 数据,常见有 同版本迁移 和 跨版本/跨服务器迁移 两种场景。下面给你一套最稳妥、官方推荐的做法。


一、迁移前准备(非常重要)

1. 查看 GitLab 版本

sudo gitlab-rake gitlab:env:info

⚠️ 目标机器 GitLab 版本必须 ≥ 源机器版本


2. 停止部分服务(减少数据变动)

sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq

二、使用官方备份(最推荐 ✅)

1. 在源服务器创建备份

sudo gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1699000000_2023_11_03_16.5.1_gitlab_backup.tar

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

scp /var/opt/gitlab/backups/*.tar root@新服务器IP:/var/opt/gitlab/backups/

3. 在新服务器恢复

确保:

  • GitLab 已安装
  • 版本一致或更高
  • 备份文件权限正确
sudo chown git:git /var/opt/gitlab/backups/*.tar

恢复命令:

sudo gitlab-rake gitlab:backup:restore BACKUP=1699000000_2023_11_03_16.5.1

只写时间戳部分,不要 .tar


4. 恢复后操作

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

三、配置文件迁移(不备份在 tar 里)

GitLab 备份 不包含配置文件,需手动拷贝:

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

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

sudo gitlab-ctl reconfigure

⚠️ 不拷 gitlab-secrets.json 会导致:

  • CI Secret
  • Runner Token
  • 加密变量 失效

四、Docker / Omnibus 差异说明

类型 备份命令
Omnibus gitlab-rake gitlab:backup:create
Docker docker exec -t gitlab gitlab-rake gitlab:backup:create

五、只迁移仓库(轻量方案)

如果你 只想要代码仓库:

/var/opt/gitlab/git-data/repositories

但不推荐,会丢:

  • Issues
  • MR
  • Wiki
  • CI

六、常见坑

❌ 跨大版本直接恢复
✅ 先升级源或目标到相同版本

❌ 忘记拷贝 gitlab-secrets.json
✅ 必须一起迁移

❌ 恢复时 GitLab 在运行
✅ 先停服务


七、验证迁移成功

sudo gitlab-rake gitlab:check SANITIZE=true

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

  • Debian 版本
  • GitLab 安装方式(Omnibus / Docker)
  • 是否跨服务器
  • GitLab 版本号

我可以给你一对一迁移命令。

0 踩