⚠️ 核心警告:在进行异机迁移时,源服务器与目标服务器的 GitLab 版本必须完全一致(例如同为 15.4.2-ce.0)。跨大版本恢复会导致数据结构不兼容,甚至恢复失败。如需升级,请遵循“先备份 -> 升级旧机 -> 验证 -> 迁移到新机”的策略。
一、 旧服务器:全量数据备份
在备份前,为了防止用户在备份过程中继续提交代码或修改数据导致数据不一致,需要先暂停 GitLab 的核心 Web 服务和后台任务处理服务。
1.1 停止核心服务
# 停止 Web 进程(处理 HTTP 请求) gitlab-ctl stop unicorn # 停止后台任务队列(处理异步任务,如邮件、CI/CD) gitlab-ctl stop sidekiq💡 提示:不需要执行
gitlab-ctl stop停止所有服务,数据库和 Redis 必须保持运行状态才能完成备份。
1.2 执行备份命令
# 创建本地备份存放目录 mkdir -p /root/gitlabBack # 执行备份(自定义备份名称为 gitlabBak230815) gitlab-rake gitlab:backup:create BACKUP=gitlabBak2308151.3 转移备份文件
备份完成后,默认生成的文件路径在 /var/opt/gitlab/backups/,且会自动加上 _gitlab_backup.tar 后缀。
# 进入默认备份目录 cd /var/opt/gitlab/backups/ # 将备份文件移动到刚才创建的