温馨提示×

怎么迁移linux gitlab

小樊
43
2026-09-19 14:55:50
栏目: 智能运维

下面按常见场景给你讲一下 Linux 上 GitLab 的迁移方法,先区分你是哪一种情况:


一、确认 GitLab 类型

先确认你用的是哪种 GitLab:

rpm -qa | grep gitlab
# 或
dpkg -l | grep gitlab

一般有两种:

  • Omnibus GitLab(官方包安装,最常见)
  • 源码版 / Docker 版

下面以 Omnibus GitLab 为主讲。


二、同版本 GitLab 迁移(最推荐)

场景

  • 旧服务器:GitLab 16.5
  • 新服务器:GitLab 16.5

步骤

1️⃣ 旧服务器备份

gitlab-rake gitlab:backup:create

备份文件在:

/var/opt/gitlab/backups/

文件名类似:

1716000000_2024_05_18_16.5.0_gitlab_backup.tar

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

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

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

# CentOS / RHEL
yum install gitlab-ee-16.5.0

# Ubuntu
apt install gitlab-ee=16.5.0

4️⃣ 恢复备份

gitlab-ctl reconfigure
gitlab-rake gitlab:backup:restore BACKUP=1716000000_2024_05_18_16.5.0

5️⃣ 重启

gitlab-ctl restart

✅ 完成


三、跨版本迁移(升级迁移)

原则

不能跨大版本直接恢复

例如:

  • 14 → 16 ❌
  • 14 → 15 → 16 ✅

步骤

  1. 旧服务器备份
  2. 新服务器安装旧版本
  3. 恢复备份
  4. 逐版本升级 GitLab
  5. 每升一级执行:
gitlab-ctl reconfigure
gitlab-rake db:migrate

四、Docker GitLab 迁移

备份

docker exec -t gitlab gitlab-rake gitlab:backup:create

迁移

  • 拷贝:
    • /var/opt/gitlab/backups
    • /etc/gitlab
    • /var/opt/gitlab
  • 新机器启动同版本容器
  • 恢复备份

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

如果不想整体迁移:

git clone --mirror git@old.gitlab.com:group/project.git
cd project.git
git push --mirror git@new.gitlab.com:group/project.git

⚠️ 会丢失:

  • Issue
  • Merge Request
  • Wiki(需单独迁)

六、迁移前必看注意事项

✅ 版本必须一致或逐级升级
✅ 备份包含:

  • 代码
  • 数据库
  • 配置文件
    ✅ 迁移后检查:
gitlab-rake gitlab:check

七、如果你愿意

你可以告诉我:

  1. GitLab 版本
  2. 是否同版本
  3. 物理机 / 虚拟机 / Docker
  4. 数据量大小

我可以给你定制迁移方案

0