GitLab服务器迁移备份及注意事项

旧服务器备份

备份时需要保证两个gitlab的版本号一致,例如我的gitlab版本号都为8.8.5。
然后使用以下命令进行备份,注意gitlab需要保持正常运行的状态

sudo gitlab-rake gitlab:backup:create

备份结束后进入 “/var/opt/gitlab/backups” 目录下查看备份文件,备份文件名格式一般为 “ 时间戳_gitlab_backup.tar ”(例如:1675114514_gitlab_backup.tar)。

新服务器恢复

1、首先安装gitlab (我gitlab都是通过宝塔面板安装,这里略过)。

2、将旧服务器备份的文件上传至新服务器的 “/var/opt/gitlab/backups” 目录下,并且修改文件权限为 777

chmod 777 /var/opt/gitlab/backups/1675114514_gitlab_backup.tar

3、停止unicorn和sidekiq服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

4、
恢复备份数据到新服务器并覆盖

 gitlab-rake gitlab:backup:restore BACKUP=1675114514

5、重启gitlab服务

gitlab-ctl start

到这里为止gitlab的迁移就算是完成了,试试看能不能正常使用,项目还都能否正常访问;条件允许的情况下旧服务器的gitlab也不用着急着删除,推荐保留7-15天以防不时之需。

以上内容参考自 这篇文章


GitLab访问项目报500错误的解决方法

经过测试迁移后所有的账号密码都没变,可正常登录,但是!当我gitlab点进其中一个项目的时候报了500的错误,如下图所示:
在这里插入图片描述
查看gitlab的日志,一般路径在(/var/log/gitlab/gitlab-rails/production.log

sudo tail -f /var/log/gitlab/gitlab-rails/production.log

经查看出现了类似如下的错误日志:

Started GET "/commons/dinpay-commons-springmvc" for 127.0.0.1 at 2016-10-11 01:32:51 +0800
Processing by ProjectsController#show as HTML
  Parameters: {"namespace_id"=>"commons", "id"=>"dinpay-commons-springmvc"}
Completed 500 Internal Server Error in 137ms (ActiveRecord: 8.3ms)

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

参考 这篇文章 的评论描述: 是gitlab数据迁移时的一个缺陷。
解决方法:
1、覆盖原来gitlab的 db_key_base 到新的gitlab
db_key_base , 也就是将旧服务器中的 /etc/gitlab/gitlab-secrets.json 复制到新服务器的 /etc/gitlab/ 目录下 。

2、执行命令:
(gitlab-ee属于企业版, gitlab-ce属于社区版,我装的是社区版)
EE版本执行命令

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

CE版本执行命令

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

最后就结束了在这里插入图片描述

文章参考内容:
https://blog.csdn.net/gcs_20210916/article/details/126729051
https://blog.csdn.net/weixin_56319285/article/details/126223006
https://www.oschina.net/question/2946511_2200445

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值