1.背景git
因爲GitLab內存消耗很大,已經影響到A服務器上的其餘服務,同時考慮到代碼管理服務應該單獨部署在一臺服務器上,所以決定從服務器A遷移到服務器B上。兩臺服務器均是CentOS 7,gitlab版本是gitlab-ce-9.5.6-ce.0.el7.x86_64.rpm 。注意:高版本的Gitlab沒法恢復低版本備份的數據,須要注意在B服務器部署和A服務器同樣版本的gitlab,部署好環境後開始備份和數據遷移。服務器
2.備份gitlab
備份A服務器上的gitlab數據,執行命令gitlab-rake gitlab:backup:create RAILS_ENV=production,PS: 備份後的文件通常是位於/var/opt/gitlab/backups下。rest
3.拷貝ip
從A服務上拷貝gitlab數據到B服務器上,執行命令: 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地址。內存
4.還原部署
在B服務器的/var/opt/gitlab/backups的目錄下還原gitlab數據,執行命令:gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1515132280_2018_01_05_9.5.6,PS:BACKUP的參數必須與原服務器備份後的文件名一致。it
5.問題io
還原過程當中報錯,報錯:沒法 open: 權限不夠,估計是拷貝過來的還原文件權限不夠,執行命令:chmod 644 1515132280_2018_01_05_9.5.6_gitlab_backup.tar,再次執行還原命令便可成功。權限