温馨提示×

gitlab linux如何迁移数据

小樊
41
2026-10-01 13:00:19
栏目: 智能运维

在 Linux 下迁移 GitLab 数据,常见场景有两类:同版本迁移(推荐) 和 跨版本/跨服务器迁移。下面按最稳妥、官方推荐的方式讲。


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

1. 查看 GitLab 版本

gitlab-rake gitlab:env:info

或

cat /opt/gitlab/version-manifest.txt

✅ 迁移建议:源和目标 GitLab 版本必须一致


2. 停止 GitLab 服务(源服务器)

gitlab-ctl stop

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

1. 创建备份(源服务器)

gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1690000000_2023_07_22_gitlab_backup.tar

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

scp /var/opt/gitlab/backups/*.tar root@目标IP:/var/opt/gitlab/backups/

3. 拷贝关键配置文件(非常重要)

/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
scp /etc/gitlab/gitlab.rb root@目标IP:/etc/gitlab/
scp /etc/gitlab/gitlab-secrets.json root@目标IP:/etc/gitlab/

三、目标服务器恢复

1. 安装相同版本 GitLab

# 以 CentOS 为例
yum install gitlab-ee-<版本号>

或参考官方安装文档。


2. 修改 gitlab.rb(如有 IP / 域名变化)

external_url 'http://新域名或IP'

3. 重新加载配置

gitlab-ctl reconfigure

4. 停止服务

gitlab-ctl stop

5. 恢复备份

gitlab-rake gitlab:backup:restore BACKUP=1690000000_2023_07_22

⚠️ 注意:

  • BACKUP 只写时间戳部分
  • 会覆盖现有数据

6. 启动 GitLab

gitlab-ctl start

四、验证迁移是否成功

gitlab-rake gitlab:check SANITIZE=true

访问 Web 页面,确认:

  • 项目
  • 用户
  • CI/CD
  • SSH Key 都正常

五、其他方式(不推荐但可用)

方式 2:直接拷贝数据目录(风险高)

/var/opt/gitlab/

⚠️ 必须完全停机、版本一致,否则极易损坏

方式 3:Git 仓库逐个迁移

适合:

  • 只要代码
  • 不要用户/CI

六、常见问题

1. 版本不一致怎么办?

✅ 先升级源 GitLab 到目标版本,再备份

2. 忘记 gitlab-secrets.json?

❌ CI/CD、Registry、密钥会失效

3. 迁移后 502?

gitlab-ctl restart

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

  • GitLab 版本
  • 是否换服务器
  • 是否换域名/IP

我可以给你精确到命令的迁移方案。

0 踩