1. 数据迁移

总体流程分为三个部分:

  1. 在新机器上安装相同版本的 gitlab。
  2. 将备份数据拷贝到对应的目录下。
  3. 导入数据。

    1.1 查看Gitlab版本

  • 方法一:

    1. [root@gitlab ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
    2. 9.5.4
  • 方法二: ```bash [root@gitlab ~]# gitlab-rake gitlab:env:info System information System: Current User: git Using RVM: no Ruby Version: 2.3.3p222 Gem Version: 2.6.6 Bundler Version:1.13.7 Rake Version: 12.0.0 Redis Version: 3.2.5 Git Version: 2.13.5 Sidekiq Version:5.0.4 Go Version: unknown

GitLab information Version: 9.5.4 Revision: fbffc27 Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: postgresql URL: http://192.168.0.149 HTTP Clone URL: http://192.168.0.149/some-group/some-project.git SSH Clone URL: git@192.168.0.149:some-group/some-project.git Using LDAP: no Using Omniauth: no

GitLab Shell Version: 5.8.0 Repository storage paths:

  • default: /var/opt/gitlab/git-data/repositories Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks Git: /opt/gitlab/embedded/bin/git ```

    1.2 备份数据

    备份数据分为两个部分,一部分是数据备份,另一部分是配置文件的备份。

    1.3 拷贝数据

    备份完成后将文件拷贝到新服务器上去。数据备份 .tar 文件,配置文件 gitlab.rbgitlab-secrets.json 要放到各自对应的目录下。数据备份文件默认是在 /var/opt/gitlab/backups/ 目录下,配置文件位于 /etc/gitlab/ 目录下。

    1.4 新机器安装 gitlab

    因为是迁移,所以安装完成后不需要设置,配置文件直接从旧机器上拷贝过来即可。
    安装好后将配置文件拷贝过来后,然后进行初始化。

    1.5 导入数据

    ```bash

    初始化配置

    [root@gitlab ~]# gitlab-ctl reconfigure

数据恢复

这一步会清空gitlab中原有的表和数据,需要输入两次yes确认

[root@gitlab ~]# gitlab-rake gitlab:backup:restore BACKUP=1615393140_2021_03_11_9.5.4

恢复完成后启动 gitlab

[root@ubuntu1804:~]# gitlab-ctl start

  1. <a name="lQ40z"></a>
  2. # 2. 版本升级
  3. [官方参考文档](https://docs.gitlab.com/ee/policy/maintenance.html#upgrade-recommendations)<br />[官方推荐升级路线](https://docs.gitlab.com/ee/update/index.html#upgrade-paths)<br />gitlab允许小版本直接升级,而大版本需要阶段升级。<br />此次升级路线为:`9.4.5 -> 9.5.10 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> 13.12.15`<br />**升级前请先做好数据备份,如果升级失败,可以重新安装原先的版本并恢复数据。**<br /> 在升级的 GitLab 版本之前,会自动备份 GitLab 数据库。通过在/etc/gitlab/skip auto backup处创建一个空文件,可以跳过此自动数据库备份:
  4. ```bash
  5. touch /etc/gitlab/skip-auto-backup

2.1 通过手动下载安装包升级

停止gitlab数据连接服务:

# 高级版本unicorn被puma替代
[root@gitlab src]# gitlab-ctl stop unicorn
[root@gitlab src]# gitlab-ctl stop puma
[root@gitlab src]# gitlab-ctl stop sidekiq

先升级到9.5.10版本(9版本中最后一个版本):

# 开始升级
[root@gitlab src]# yum -y install ./gitlab-ce-9.5.10-ce.0.el7.x86_64.rpm

# 升级后再次启动下gitlab,查看下是否可以正常使用
[root@gitlab src]# gitlab-ctl start sidekiq
ok: run: sidekiq: (pid 28288) 0s
[root@gitlab src]# gitlab-ctl start unicorn
ok: run: unicorn: (pid 28315) 0s

# 查看版本号
[root@gitlab src]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
9.5.10

确认没有问题后再继续升级10.8.7:

[root@gitlab src]# gitlab-ctl stop unicorn
[root@gitlab src]# gitlab-ctl stop sidekiq
[root@gitlab src]# yum -y install ./gitlab-ce-10.8.7-ce.0.el7.x86_64.rpm
[root@gitlab src]# gitlab-ctl start sidekiq
[root@gitlab src]# gitlab-ctl start unicorn
[root@gitlab src]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.8.7

后续升级重复上述操作即可。