Gitlab备份恢复与迁移

       本文将要介绍的Gitlab备份与迁移是针对整个Gitlab服务器的,要求新旧服务器的Gitlab版本一致,如果新旧Gitlab服务器版本号不一致将不能迁移。后面将介绍Gitlab上单个工程的迁移,这种迁移方式不要求Gitlab版本号一致。

1 Gitlab 创建备份 

   首先把老服务器上的Gitlab整体备份,命令如下:

    gitlab-rake gitlab:backup:create

   使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1502357536_2019_01_10_9.4.3_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中1502357536(备份ID),2019_01_10(备份日期),9.4.3(gitlab版本号)。

2 将备份文件拷贝到新的Gitlab服务器

Gitlab默认备份目录在gitlab安装目录下的backups文件夹,如:/var/opt/gitlab/backups。

3 从备份文件中恢复Gitlab

确保新Gitlab服务器和老Gitlab服务器版本相同。

第一步,将备份文件权限修改为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=备份文件编号

例如我们的备份文件的编号是1502357536_2019_01_10_9.4.3,因此执行下面的命令即可恢复gitlab

gitlab-rake gitlab:backup:restore BACKUP=1502357536_2019_01_10_9.4.3

敲完命令后,出现第一个交互页面,

Do you want to continue (yes/no)?

输入“yes”继续。

恢复过程中。。。。。

出现第二个交互页面

输入“yes”继续。

 

第四步,启动Gitlab

sudo gitlab-ctl start

启动完新的Gitlab后,打开页面对比新旧的Gitlab,完全一样。