通過 備份檔案 恢復 遷移 gitlab

2021-08-21 10:00:00 字數 2875 閱讀 3239

通過之前的記錄,已經掌握了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.tar
4.2 停止相關資料連線服務

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

4.3 恢復gitlab

使用「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 以唯讀方式開啟檔案。檔案的指標將會...