温馨提示×

如何迁移debian gitlab数据

小樊
38
2026-10-14 06:52:04
栏目: 智能运维

迁移 Debian 上的 GitLab 数据通常有两种主要方式:使用 GitLab 内建备份恢复机制(推荐) 和 直接复制数据目录(适用于同版本、同架构)。下面分别说明。


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

适用于:

  • 跨服务器迁移
  • 升级/重装 GitLab
  • Debian → Debian(或其他 Linux)

1. 在旧服务器上创建备份

sudo gitlab-rake gitlab:backup:create

默认备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1670000000_2023_01_01_gitlab_backup.tar

该备份包含:仓库、数据库、附件、CI 数据等
⚠️ 不包含 GitLab 配置文件

2. 备份配置文件

sudo tar czf gitlab-config.tar.gz -C / etc/gitlab

3. 传输到新服务器

scp /var/opt/gitlab/backups/*.tar user@new-server:/var/opt/gitlab/backups/
scp gitlab-config.tar.gz user@new-server:/tmp/

4. 在新 Debian 服务器安装相同版本 GitLab

查看旧版本:

sudo gitlab-rake gitlab:env:info

安装相同版本(示例):

sudo apt-get install gitlab-ee=15.11.0-ee.0

5. 恢复配置文件

sudo tar xzf /tmp/gitlab-config.tar.gz -C /
sudo gitlab-ctl reconfigure

6. 恢复备份数据

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

二、直接复制 GitLab 数据目录(不推荐 ⚠️)

仅适用于:

  • 同 GitLab 版本
  • 同 Debian 架构(x86_64)
  • 紧急迁移

步骤

  1. 停止 GitLab
sudo gitlab-ctl stop
  1. 打包数据目录
sudo tar czf gitlab-data.tar.gz /var/opt/gitlab
  1. 复制到新服务器并解压
sudo tar xzf gitlab-data.tar.gz -C /
  1. 复制配置
sudo cp -r /etc/gitlab /etc/
  1. 启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

三、常见问题

❓ 版本不一致能恢复吗?

不能,必须版本一致,否则可能失败。

❓ 迁移后权限错误?

sudo gitlab-ctl reconfigure
sudo chown -R git:git /var/opt/gitlab

❓ Docker 版 GitLab?

备份方式相同,但路径在容器内。


如果你能提供:

  • GitLab 版本
  • 是否 Omnibus 安装
  • 是否跨服务器

我可以给你更精确的迁移命令。

0 踩