一 遷移前提
1 首先保證兩個服務器的gitlab版本一致,
sudo gitlab-rake gitlab:env:info 查看版本信息
2 設置目錄權限
把目標機器里面的備份放到你的新機器上面的備份目錄 默認是在/ var/opt/gitlab/backups 這個目錄下,可以自己定義,默認備份的這個目錄普通用戶無查看權限,需要自己更改權限,默認一般是git用戶
二 備份
要想遷移,前提是要先備份完整的gitlab數據
備份時需要保持gitlab處於正常運行狀態,直接執行gitlab-rake gitlab:backup:create進行備份
使用以上命令會在/var/opt/gitlab/backups目錄下創建一個名稱類似為1530156812_2018_06_28_10.8.4_gitlab_backup.tar的壓縮包, 這個壓縮包就是Gitlab整個的完整部分, 其中開頭的1530156812_2018_06_28_10.8.4是備份創建的日期
2.1 修改備份文件目錄
可以通過/etc/gitlab/gitlab.rb配置文件來修改默認存放備份文件的目錄
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
修改完成之后使用gitlab-ctl reconfigure命令重載配置文件即可
2.2 設置備份過期時間
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_keep_time'] = 604800 #以秒為單位
2.3 gitlab自動備份
創建定時任務
[root@gitlab ~]# crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
三 遷移過程
首先要先拷貝備份好的數據到目標服務器所在的對應目錄
# 先關閉連接數據庫的進程
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
#確認狀態
sudo gitlab-ctl status
# 通過指定時間戳來執行restore操作,這個操作會復寫gitlab的數據庫
sudo gitlab-rake gitlab:backup:restore BACKUP=1544701014_2018_12_13_10.3.3 # 后面的這個時間戳是你備份的名字
# 注意:備份的時候,gitlab-rake后面的命令都不會自動補全,需要手寫,恢復過程中需要按照提示輸入兩次yes並回車
# 再次啟動gitlab
sudo gitlab-ctl restart
# 通過下面命令檢查gitlab
sudo gitlab-rake gitlab:check SANITIZE=true
恢復過程如圖:
然后訪問網頁查看效果,如果提示502等一分鍾再刷新一次