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