Ubuntu GitLab更新后数据迁移指南
sudo gitlab-rake gitlab:backup:create
备份文件默认存储在/var/opt/gitlab/backups目录,文件名格式为YYYY-MM-DD-HH-mm-ss_gitlab_backup.tar。sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx # 可选,若涉及web配置变更
若迁移至全新服务器或需要全新安装,需先通过Omnibus包安装最新版GitLab:
# 导入GitLab GPG密钥
curl https://packages.gitlab.com/gpg.key | sudo apt-key add -
# 添加GitLab软件源
echo "deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab.list
# 更新包索引并安装
sudo apt-get update
sudo apt-get install gitlab-ce
安装完成后,通过sudo gitlab-ctl reconfigure应用初始配置。
将旧服务器/var/opt/gitlab/backups目录下的备份文件复制到新服务器相同路径:
scp -r user@old-server:/var/opt/gitlab/backups/* user@new-server:/var/opt/gitlab/backups/
在新服务器上,使用GitLab恢复工具导入备份(需停止相关服务):
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=2025-09-18-12-00-00 # 替换为实际备份文件名(不含.tar后缀)
若备份不完整,手动复制仓库目录(存储代码仓库)及配置、附件目录:
# 复制仓库(默认路径)
sudo rsync -avz /var/opt/gitlab/repositories/ user@new-server:/var/opt/gitlab/
# 复制配置文件(含gitlab.rb)
sudo rsync -avz /var/opt/gitlab/config/ user@new-server:/var/opt/gitlab/
# 复制共享文件(含附件、LFS对象等)
sudo rsync -avz /var/opt/gitlab/shared/ user@new-server:/var/opt/gitlab/
/etc/gitlab/gitlab.rb,确认关键配置(如外部URL、数据库连接)是否适配新环境:external_url 'http://new-server-ip' # 更新为新服务器地址
gitlab_rails['gitlab_shell_ssh_port'] = 22 # 若SSH端口变更需调整
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
sudo gitlab-ctl enable
http://new-server-ip,确认登录页面正常显示。