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,完全一样。