作者:尹正傑
版權宣告:原創作品,謝絕轉載!否則將追究法律責任。
目錄
- 一.手動備份配置檔案
- 二.手動備份資料
- 三.模擬刪除meta-data專案資料
- 1 刪除meta-data專案
- 2 meta-data被刪除成功
- 四.透過備份恢復meta-data專案資料
- 1 恢復前需要先停止puma和sidekiq服務
- 2 恢復時指定備份檔案的時間部分,不要指定檔案的全名
- 3 檢查恢復是否成功
一.手動備份配置檔案
- 備份配置檔案:
/etc/gitlab/gitlab.rb
gitlab的配置檔案
/etc/gitlab/gitlab-secrets.json
gitlab雙因子驗證等使用此檔案
- 備份配置檔案案例:
gitlab-ctl backup-etc [-p, --backup-path BACKUP_PATH]
如果不指定"-p, --backup-path BACKUP_PATH",則預設備份至"/etc/gitlab/config_backup"。
舉個例子:
如上圖所示,若不指定備份路徑,會使用gitlab預設的備份路徑喲~
如下圖所示,備份的檔案可以嘗試解壓觀察裡面的檔案。
參考連結:
https://docs.gitlab.com/ee/raketasks/backup_restore.html
二.手動備份資料
- 不同版本的備份資料命令
gitlab 12.2之後版本:
gitlab-backup create
gitlab 12:1 之前的版本:
gitlab-rake gitlab:backup:create
- 備份資料相關配置:
預設在"/etc/gitlab/gitlab.rb"檔案中指定備份路徑,如果目錄空間不足,可以修改新的目錄。
- gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
- 注意,修改完配置需要執行"gitlab-ctl reconfigure"
備份的檔案許可權,所有者和所屬組為git
- gitlab_rails['backup_archive_permissions'] = 0644
預設備份過期時長為7天,單位為s,之後會被自動刪除。
- gitlab_rails['backup_keep_time'] = 604800
- 備份資料案例:
gitlab-backup create
備份資料,如上圖所示,備份完成會警告咱們要備份配置檔案喲~但咱們已經備份過了,可以忽略該警告。
三.模擬刪除meta-data專案資料
1 刪除meta-data專案
如上圖所示,依次點選滑鼠後,就會彈出刪除meta-data的專案的確認框,如下圖所示。
2 meta-data被刪除成功
如上圖所示,刪除會提示"meta-data"正在被刪除,重新整理頁面後就看不到該提示了,如下圖所示。
四.透過備份恢復meta-data專案資料
1 恢復前需要先停止puma和sidekiq服務
# gitlab-ctl stop puma
# gitlab-ctl stop sidekiq
# gitlab-ctl status
溫馨提示:
puma服務:
是一個用於 Ruby 應用程式的簡單、快速、多執行緒和高度併發的HTTP 1.1伺服器。
sidekiq服務:
儲存使用者在後臺執行佇列任務(非同步執行)
2 恢復時指定備份檔案的時間部分,不要指定檔案的全名
# gitlab-backup restore BACKUP=1676332446_2023_02_13_15.6.7
將字首為"1676332446_2023_02_13_15.6.7"的備份檔案進行恢復。
如上圖所示,此過程需要輸入2次yes喲~
# gitlab-ctl reconfigure
恢復資料後,需要還原配置檔案路徑,並重新配置一下gitlab使其生效。
值得注意的是,咱們並沒有刪除配置檔案,而是刪除了專案資料,此過程理論上應該是可用跳過的。
# gitlab-ctl restart
重啟gitlab服務,確保每個服務都被重新拉起,如下圖所示。
溫馨提示:
舊版本恢復方法:
- 恢復前需要先停止兩個服務
# gitlab-ctl stop puma
# gitlab-ctl stop sidekiq
- 恢復時指定備份檔案的時間部分,不需要指定檔案的名稱。
gitlab-rake gitlab:backup:restore BACKUP=備份檔案的時間部分
3 檢查恢復是否成功
如上圖所示,專案名稱被成功恢復啦。
如下圖所示,專案的資料也被成功恢復了喲。