gitlab备份-迁移-升级方案9.2.7升级到15版本最佳实践

背景

了解官方提供的版本的升级方案

复制代码
- GitLab 8: 8.11.Z  8.12.0  8.17.7 
- GitLab 9: 9.0.13  9.5.10    9.2.7
- GitLab 10: 10.0.7  10.8.7
- GitLab 11: 11.0.6  11.11.8
- GitLab 12: 12.0.12  12.1.17  12.10.14
- GitLab 13: 13.0.14  13.1.11  13.8.8  13.12.15
- GitLab 14: 14.0.12  14.3.6  14.9.5  14.10.5
- GitLab 15: 15.0.5  15.1.6 (for GitLab instances with multiple web nodes) > 15.4.6  latest 15.Y.Z
参考资料
复制代码
官方文档
https://archives.docs.gitlab.com/15.11/ee/update/#upgrade-paths
清华大学开源软件镜像站
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
官方源
https://packages.gitlab.com/app/gitlab/gitlab-ce/search?dist=&filter=debs&page=147&q=
参考资料
https://blog.csdn.net/cfh0081/article/details/131393441
1. 数据备份
复制代码
gitlab-rake gitlab:backup:create   #备份命令
备份目录
/data/backups
1706000135_2024_01_23_9.2.7_gitlab_backup.tar
2.迁移恢复

#忽略其他环境,建议使用centos7版本,方便后期升级

2.1 下载rpm包,方便后期升级

查看原来系统的版本

bash 复制代码
cat /var/opt/gitlab/gitlab-rails/VERSION  #检查升级的版本
2.1 恢复初始环境
bash 复制代码
rpm -i gitlab-ce-9.2.7-ce.0.el7.x86_64.rpm

注意修改配置 gitlab.rb

bash 复制代码
gitlab-ctl reconfigure
gitlab-ctl restart
2.2 恢复旧数据

cd 备份目录下

bash 复制代码
gitlab-rake gitlab:backup:restore BACKUP=1706000135_2024_01_23_9.2.7
gitlab-ctl reconfigure  #重新生成配置文件
gitlab-ctl restart  #重启服务
gitlab-ctl status   #检查服务是否正常启动
gitlab-rake gitlab:check SANITIZE=true  #检查 GitLab 实例的配置和运行环境是否正确
cat /var/opt/gitlab/gitlab-rails/VERSION  #检查升级的版本
2.3 版本升级

配置yum源

bash 复制代码
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enable=1
gpgkey=https://packages.gitlab.com/gpg.key

开始升级参照升级顺序进行升级,每次升级完成重新加载配置,重启服务

bash 复制代码
yum -y install gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm 
cat /var/opt/gitlab/gitlab-rails/VERSION  #检查版本
gitlab-ctl reconfigure  #重新加载配置
gitlab-ctl restart     #重启服务
为什么使用centos系统,

方便版本管理,后期升级完成后可以迁移其他系统。

rpm软件包提前下载是为了方便升级,下载地址如下

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

升级完成有如下提示

参考资料

bash 复制代码
https://blog.csdn.net/weixin_44093164/article/details/127869196?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-127869196-blog-131288688.235%5Ev40%5Epc_relevant_anti_vip&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-127869196-blog-131288688.235%5Ev40%5Epc_relevant_anti_vip&utm_relevant_index=13
注意事项

12.10.14 -> 13.0.14升级注意

bash 复制代码
**12.10.14 -> 13.0.14**
此版本变动如下:
1、Puma代替unicorn作为默认web server
2、PostgreSQL最低版本提升到11。

停止数据连接服务:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
开始升级:
rpm -Uvh gitlab-ce-13.0.14-ce.0.el7.x86_64.rpm
gitlab-ctl restart

14.0.12 -> 14.3.6 升级注意

报错

There was an error running gitlab-ctl reconfigure:

解决方案
gitlab:background_migrations:finalize... 该命令有可能执行多次,直到无报错即可

bash 复制代码
gitlab-ctl stop
 
gitlab-ctl start postgresql
#复制刚才输出的命令 
sudo gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,ci_builds_metadata,id, "["id"]\'["id_convert_to bigint"]]']
gitlab-rake db:migrate
gitlab-ctl reconfigure  #重新初始化
gitlab-ctl restart      #重起服务
相关推荐
Johny_Zhao2 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
小毛驴8503 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
一心0924 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上4 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊4 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
tan180°5 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
代码老y5 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程5 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
wuk9986 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
你想考研啊8 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins