gitlab备份迁移

目录

一.数据备份

二.数据迁移

踩坑

1.删除项目出现500.或无法删除群组,因为token不一致导致的需要手动清理token

2.gitlab-runnner 无法注册 gitlab报500错误

业务需求

将A服务器的gitlab实例数据迁移至B服务器gitlab实例数据

注意:保证版本一致,若使用不同版本,需升级到版本相同才行

一.数据备份

1.进入A服务器执行备份命令

gitlab-backup create

 

出现这样的情况说明已经备份好了,红字中的提示:用户的敏感数据存储于/etc/gitlab/gitlab-secrets.json以及/etc/gitlab/gitlab.rb,用户【必须】手动进行备份。可以选择不用备份,在新的实例中修改即可

二.数据迁移

1.找到我们备份好的文件,将文件下载下来 

一般安装是没做设置的话,默认存放备份数据的地址为/var/opt/gitlab/backups/

 2.进入B服务器修改配置文件

修改备份数据恢复地址

 修改备份数据存放地址,保持退出

 3.停止gitlab,重载配置文件,并重启

gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start

 4.将A服务器的备份数据上传备份数据恢复地址

 5.停止gitlab部分服务,保证恢复过程中有数据写入

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

 6.执行备份恢复命令

gitlab-rake gitlab:backup:restore BACKUP=xxxxx

解释 xxxxx:对应的备份的标号,如

gitlab-rake gitlab:backup:restore BACKUP=1681125786_2023_04_10_14.10.5

 

 若备份时出现SQL异常,可以参考 Gitlab-ce数据还原时发生PostgreSQL异常_hu_wenjie的博客-CSDN博客 也可忽略后续自己修改至此,数据迁移就完成了!

 

踩坑

1.删除项目出现500.或无法删除群组,因为token不一致导致的需要手动清理token

gitlab-rails dbconsole --database main #进入gitlab内部数据库

#清除项目、组和整个实例的所有令牌

UPDATE projects SET runners_token = null, runners_token_encrypted = null;

UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;

UPDATE application_settings SET runners_registration_token_encrypted = null;

UPDATE ci_runners SET token = null, token_encrypted = null;

quit

参考文档 https://blog.csdn.net/qq_37837432/article/details/121642542 

2.gitlab-runnner 无法注册 gitlab报500错误

 查看gitlab日志:

进入/var/log/gitlab/gitlab-rails 监听 tail -1000f production.log

 

 解决方案

sudo gitlab-rails c
settings = ApplicationSetting.last
settings.update_column(:runners_registration_token_encrypted, nil)
settings.update_column(:encrypted_ci_jwt_signing_key, nil)
settings.save!

 

参考文档 https://blog.csdn.net/ZH_CS/article/details/124709638 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值