gitlab数据完整迁移到新的服务器基于docker

1 创建备份文件

gitlab-rake gitlab:backup:create
使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1502357536_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1502357536_是备份创建的日期

生成完后,/var/opt/gitlab/backups目录创建一个名称类似为1502357536_gitlab_backup.tar的压缩包

最重要的一步

复制 /etc/gitlab目录下的
gitlab.rb
gitlab-secrets.json  
这两个文件,到新的服务器gitlab上的对应目录下

2 gitlab完整仓库迁移至新gitlab仓库,确保新Gitlab服务器和老Gitlab服务器版本相同

用scp命令内网复制压缩文件过来,或者上传也行
上传到新的gitlab仓库对应的/var/opt/gitlab/backups目录下
#如果是docker部署的服务,推荐用挂载目录的方式去做
volumes:
    # gitlab配置
    - /etc/gitlab:/etc/gitlab
    # 挂载宿主机目录
    - /var/opt/gitlab:/var/opt/gitlab
这个后边映射的docker容器的目录可以在容器启动后,去容器内自己查找看看
第一步,将备份文件权限修改为777,不然可能恢复的时候会出现权限不够,不能解压的问题
chmod 777 1502357536_2017_08_10_9.4.3_gitlab_backup.tar  

第二步,执行命令停止相关数据连接服务

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

第三步,执行命令从备份文件中恢复Gitlab

gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

敲完命令后,出现第一个交互页面,
root@ubuntu4146:/var/opt/gitlab/backups# gitlab-rake gitlab:backup:restore BACKUP=1502357536_2017_08_10_9.4.3
Unpacking backup ... done
Before restoring the database we recommend removing all existing
tables to avoid future upgrade problems. Be aware that if you have
custom tables in the GitLab database these tables and all data will be
removed.

Do you want to continue (yes/no)?

输入yes
会出现几个这样的输入框,都输入yes


最后
第四步,启动Gitlab
gitlab-ctl start

再次登录 gitlab,旧gitlab的所有数据完整的copy到了新服务器

最重要的最后一步

进入项目会报错,500的错误
在gitlab服务器上执行
 gitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"
 就可以了
 这是把之前
 gitlab.rb
gitlab-secrets.json  这两个配置重新加载

进入项目报错:迁移后访问首页没问题,但是访问项目时会报500的错误,是gitlab数据迁移时的一个缺陷。

迁移后访问首页没问题,但是访问项目时会报500的错误,是gitlab数据迁移时的一个缺陷。

解决办法


1、覆盖原来gitlab的 db_key_base 到新的gitlab 

db_key_base  位置在 /etc/gitlab/gitlab-secrets.json  

 

2、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 }"
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值