0%

GitLab服务器迁移

一、背景

由于GitLab内存消耗很大,已经影响到A服务器上的其他服务,同时考虑到代码管理服务应该单独部署在一台服务器上,因此决定从服务器A迁移到服务器B上。两台服务器均是CentOS 7,gitlab版本是gitlab-ce-9.5.6-ce.0.el7.x86_64.rpm 。注意:高版本的Gitlab无法恢复低版本备份的数据,需要注意在B服务器部署和A服务器一样版本的gitlab,部署好环境后开始备份和数据迁移。

二、备份

备份A服务器上的gitlab数据,执行命令:

1
gitlab-rake gitlab:backup:create RAILS_ENV=production

PS: 备份后的文件一般是位于/var/opt/gitlab/backups下。

三、拷贝

从A服务上拷贝gitlab数据到B服务器上,执行命令:

1
scp root@A_ip:/var/opt/gitlab/backups/1515132280_2018_01_05_9.5.6_gitlab_backup.tar /var/opt/gitlab/backups

其中A_ip是A服务器IP地址。

四、还原

在B服务器的/var/opt/gitlab/backups的目录下还原gitlab数据,执行命令:

1
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1515132280_2018_01_05_9.5.6

PS:BACKUP的参数必须与原服务器备份后的文件名一致。

五、问题

还原过程中报错,报错:无法 open:
权限不够,估计是拷贝过来的还原文件权限不够,执行命令:

1
chmod 644 1515132280_2018_01_05_9.5.6_gitlab_backup.tar

再次执行还原命令即可成功。