Gitlab 数据搬家迁移

修改时间: 2019-10-25 17:41:00 PM

文章时间:2019年10月25日 17:24:35
解决问题:将Gitlab从一个服务器上搬家到另一台服务器上面
Gitlab版本:8.8.5
说明:gitliab是基于宝塔一键安装的

注:此篇文章省略了gitliab的安装及配置等等,如有需要 请自行搜索

第一步 对应两个Gitlab版本

查看gitlab版本(二选一):

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 
gitlab-rake gitlab:env:info

两台服务器的Gitlab版本必须是统一的,如有不统一,请先进行升级统一。
Gitlab版本升级教程:

第二步 备份数据 将Gitlab内的数据打包

bf001.png

gitlab-rake gitlab:backup:create RAILS_ENV=production

备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名文件名如1571993772_gitlab_backup.tar

bf002.png

第三步 数据迁移 将备份文件拷贝至新环境

scp 服务器之间的拷贝命令:https://wiki.nooss.cn/archives/278.html

bf003.png

/#把对应版本的数据从旧服务器上拷贝到新服务器的gitlab备份目录里

scp /var/opt/gitlab/backups/1571993772_gitlab_backup.tar root@192.168.1.1:/var/opt/gitlab/backups/

第四步 恢复备份文件

/#新服务器执行恢复命令

chown -R git.git /var/opt/gitlab/backups/
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1571993772

注意:这里没有后面的_gitlab_backup.tar名字
一路yes,恢复是会先删除新服务器上所有gitlab数据的。

bf004.png

参考文献

  • Gitlab 升级备份迁移:https://www.jianshu.com/p/6361cba123a8

常见报错

gitlab 备份恢复部分项目httpcode 500报错
报错信息如下:

Started GET "/hcses/hcses-warehouse" for 112.243.76.43 at 2019-10-25 18:07:34 +0800
Processing by ProjectsController#show as HTML
  Parameters: {"namespace_id"=>"hcses", "id"=>"hcses-warehouse"}
Completed 500 Internal Server Error in 38ms (ActiveRecord: 5.9ms)

OpenSSL::Cipher::CipherError (bad decrypt):
  app/models/project.rb:383:in `import_url'
  app/models/project.rb:413:in `external_import?'
  app/models/project.rb:405:in `import?'
  app/models/project.rb:421:in `import_in_progress?'
  app/controllers/projects_controller.rb:93:in `show'
  lib/gitlab/middleware/go.rb:16:in `call'

解决方法:

执行下面命令既可恢复

gitlab-rails runner  "Project.where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"

网友教程参考:
gitlab 项目页500错误 OpenSSL bad decrypt:https://blog.csdn.net/u013114078/article/details/82995082
gitlab 备份恢复部分项目httpcode 500报错:https://blog.51cto.com/nginxs/1942028

添加新评论