通過之前的記錄,已經掌握了gitlab的本地備份和遠端備份。
但是獲取備份檔案不是我們的目的,最終是為了通過備份檔案實現遷移或恢復gitlab。本篇就是記錄如何通過備份檔案在新的環境上去恢復/遷移gitlab。
一、環境準備
首先在新伺服器(192.168.2.1)上搭建gitlab,部署過程可以參考前面
注意:通過備份檔案恢復gitlab必須保證新的gitlab版本必須要和老的gitlab版本一致,否則會提示版本不匹配。
所以無非是兩種思路,一種將老的gitlab先公升級到你要的gitlab版本,再遷移備份;另一種將gitlab安裝的版本和老gitlab一致,遷移完成後再進行公升級。
我採取先保持一致後遷移,再進行公升級。
二、配置新的gitlab
gitlab的配置檔案(gitlab.rb)是不因備份恢復而恢復的,故要將老的gitlab的配置檔案也取過來,否則就需要維護人員重新配置。
2.1 獲取gitlab.rb
在新伺服器上,使用scp命令將老伺服器(192.168.1.1)的備份檔案複製到/etc/gitlab/目錄下。
第一次連線時會詢問是否要繼續連線,輸入yes,回車。
接著輸入老伺服器的root密碼後,回車。
接著就會看到備份檔案傳輸的資訊。
2.2 修改external_url
如果新gitlab伺服器部署之後ip不改回老的ip(示例為192.168.1.1),故需要修改gitlab.rb的external_url引數,因為頁面上專案的http位址就是根據該引數拼接而成的。
以新gitlab伺服器的ip為192.168.2.1為例,修改gitlab配置檔案。
vim /etc/gitlab/gitlab.rb修改external_url,wq儲存。
external_url ''2.3 重新配置gitlab
gitlab-ctl reconfigure三、獲取備份檔案
在新伺服器上,使用scp命令將老伺服器(192.168.1.1)的備份檔案(1508412719_2017_10_19_10.0.2_gitlab_backup.tar)複製到/var/opt/gitlab/backups/目錄下。
scp [email protected]:/var/opt/gitlab/backups/1508412719_2017_10_19_10.0.2_gitlab_backup.tar /var/opt/gitlab/backups/獲取到/var/opt/gitlab/backups/目錄下是因為我沒有特別更換gitlab的備份目錄,如果gitlab.rb有指定別的目錄,根據實際情況自行修改。
第一次連線時會詢問是否要繼續連線,輸入yes,回車。
接著輸入老伺服器的root密碼後,回車。
接著就會看到備份檔案傳輸的資訊。
如果老伺服器出現故障時,雲端有備份檔案可以從雲端獲取,比如雲端192.168.1.2的/gitlab-backup目錄下有備份檔案,可以從那獲取。
scp [email protected]:/gitlab-backup/1508412719_2017_10_19_10.0.2_gitlab_backup.tar /var/opt/gitlab/backups/四、恢復/遷移gitlab資料
4.1 修改備份檔案許可權
將備份檔案的許可權改為777,否則恢復的時候會出現許可權不夠導致解壓失敗的問題。
chmod 777 /var/opt/gitlab/backups/1508412719_2017_10_19_10.0.2_gitlab_backup.tar4.2 停止相關資料連線服務
gitlab-ctl stop unicorn4.3 恢復gitlabgitlab-ctl stop sidekiq
使用「gitlab-rake gitlab:backup:restore backup=備份檔案編號」指令可以根據備份檔案來恢復,因為示例中是使用1508412719_2017_10_19_10.0.2_gitlab_backup.tar來恢復,故備份檔案編號為1508412719_2017_10_19_10.0.2。
gitlab-rake gitlab:backup:restore backup=1508412719_2017_10_19_10.0.2等待片刻後,由於新的gitlab還是處於初始狀態,直接輸入「yes」,回車。
然後就是等待恢復的結束。
到了下面的內容時,輸入「yes」,回車。
4.4 啟動gitlab
gitlab-ctl start五、關於本地備份和遠端備份
由於這兩塊是額外配置的,如果新環境中也要有這一套備份機制,自然需要維護人員手動配一次。
通過 備份檔案 恢復 遷移 GitLab
部署 公升級 本地備份 遠端備份 通過之前的記錄,已經掌握了gitlab的本地備份 和遠端備份 但是獲取備份檔案不是我們的目的,最終是為了通過備份檔案實現遷移或恢復gitlab。本篇就是記錄如何通過備份檔案在新的環境上去恢復 遷移gitlab。一 環境準備 首先在新伺服器 192.168.2.1 上...
檢視mysql備份檔案 備份與恢復
mysql的備份與恢復 檢視mysql的備份資料 重要 egrep v mnt database bak.sql mysql檢視bin log日誌的方法 mysqlbinlog mysql bin.000001 拆分總的binlog為指定庫的增刪改操作 恢復指定庫的binlog時使用 mysqlbi...
python 檔案讀寫,通過讀寫操作備份檔案
用於開啟乙個檔案,建立乙個 file 物件,相關的方法才可以呼叫它進行讀寫。不同模式開啟檔案的完全列表 模式描述 t 文字模式 預設 x 寫模式,新建乙個檔案,如果該檔案已存在則會報錯。b 二進位制模式。開啟乙個檔案進行更新 可讀可寫 u 通用換行模式 不推薦 r 以唯讀方式開啟檔案。檔案的指標將會...