由于业务需要,我们需要迁移备份原有的gitlab仓库,迁移要求gitlab新旧版本一致
1、备份旧的gitlab
查看gitlab版本
sudo cat /opt/gitlab/version-manifest.txt | grep "gitlab-ce"
##或者
sudo gitlab-rake gitlab:env:info | grep "GitLab version"
停止服务
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
## 或者直接停止服务
sudo gitlab-ctl stop
备份gitlab数据库
sudo gitlab-backup create
默认会生成在 /var/opt/gitlab/backups/ 目录下,文件名 如:
1750765308_2025_06_24_16.7.6_gitlab_backup.tar
配置文件打包
sudo tar -cf gitlab_conf.tar /etc/gitlab
2、在新机器安装gitlab-ce
新主机系统ubuntu24.04 gitlab安装版本 17.1.1
# 安装基础包
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl
# 配置软件源
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# 使用 apt-cache madison 命令可查看源中可用的版本列表
sudo apt-cache madison gitlab-ce
# 安装指定版本
sudo apt-get install gitlab-ce=17.1.1-ce.03、迁移
还原配置文件
sudo tar -xf gitlab_conf.tar -C /
sudo gitlab-ctl reconfigure
gitlab数据恢复
sudo gitlab-backup restore BACKUP=1750765308_2025_06_24_16.7.6
会提示
Be sure to stop Puma, Sidekiq... Do you want to continue (yes/no)?
输入 yes
随后会尝试清空数据库并导入数据
4、恢复后验证步骤
启动 GitLab 服务
sudo gitlab-ctl start
检查服务状态
sudo gitlab-ctl status
确保关键服务如 postgresql, puma, sidekiq 均为 run 状态。
Web 页面访问验证
访问 http://<your-gitlab-host>,确认是否可正常登录、浏览项目 。
可能会出现的错误
PostgreSQL 扩展权限错误
恢复时报错:
ERROR: must be owner of extension pg_trgm
ERROR: must be owner of extension btree_gist
解决方法:
使用超级用户 gitlab-psql 登录,并删除这两个扩展:
sudo gitlab-psql
-- 删除可能存在的扩展
DROP EXTENSION IF EXISTS pg_trgm;
DROP EXTENSION IF EXISTS btree_gist;
\q
然后重新执行恢复命令。
logrotate 报错无法 reconfigure
报错如下
runit_service[logrotate] ...
timeout: down: /opt/gitlab/service/logrotate/log: 0s, normally up, want up处理方式:
手动清理 logrotate 服务文件并重启:
sudo sv stop /opt/gitlab/service/logrotate
sudo rm -rf /opt/gitlab/service/logrotate
sudo gitlab-ctl reconfigure
恢复后可能还需要的命令
创建缺失扩展
sudo gitlab-psql -d gitlabhq_production -c "CREATE EXTENSION pg_trgm;"
sudo gitlab-psql -d gitlabhq_production -c "CREATE EXTENSION btree_gist;"
检查数据库角色
sudo gitlab-psql
\du
确保角色 gitlab 存在并非超级用户即可。
参考链接: