GitLab備份與恢復


一、 備份gitlab

gitlab的備份比較簡單,我們直接使用gitlab本身提供的命令進行備份即可。

1.1 通過gitlab-rake命令備份gitlab

gitlab提供的備份命令為gitlab-rake,備份命令使用如下:

gitlab-rake gitlab:backup:create

該命令會備份gitlab倉庫、數據庫、用戶、用戶組、用戶密鑰、權限等信息。

備份完成后備份文件會出現在/var/opt/gitlab/backups/

當然備份的位置可以更換,使用如下命令:

vim /etc/gitlab/gitlab.rb

修改上圖backup_path的值即可,之后使用gitlab-ctl reconfigure使得配置生效

ps:備份文件的名稱中1537261122_2018_09_18_9.2.5是此次備份的編號。該編號我們會在后續恢復gitlab數據使用到。

1.2 定時備份gitlab

如果要使gitlab自動進行備份的話,我們可以通過crontab命令來實現自動備份。強烈建議使用系統crontab命令,而不是用戶crontab。

以實現每天凌晨4點進行一次自動備份為例,系統的crontab配置如下:

vim /etc/crontab

0 4 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

然后重啟crontab服務,如下:

systemctl restart crond

1.3 保留部分備份文件

隨着時間的推移gitlab備份文件越來越多,服務器的磁盤空間也不夠大。

此時我們就要刪除部分舊的備份文件,gitlab也提供了刪除舊的備份文件功能。該功能在gitlab的配置文件中,進行配置即可。

在此以保留7天之前的備份文件為例,如下:

vim /etc/gitlab/gitlab.rb

gitlab_rails[‘backup_keep_time’] = 604800

其中backup_keep_time是以秒為單位進行計算的,然后執行命令gitlab-ctl reconfigure即可。

二、gitlab倉庫恢復

要驗證gitlab備份的有效性,我們可以把該備份文件復制到已經安裝好gitlab服務器的/var/opt/gitlab/backups/目錄下。然后進行數據恢復,最后訪問並查看其數據完整性即可。

通過gitlab備份文件可以恢復gitlab所有的信息,包括倉庫、數據庫、用戶、用戶組、用戶密鑰、權限等信息。

ps:新服務器上的gitlab的版本號必須與創建備份時的gitlab版本號相同。

gitlab數據恢復比較簡單,具體步驟如下:

2.1 停止相關數據連接服務

在gitlab服務器上停止相關數據連接服務,命令如下:

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

2.2 恢復gitlab倉庫

現在我們要從1537261122_2018_09_18_9.2.5這個備份編號中,恢復數據,命令如下:

gitlab-rake gitlab:backup:restore BACKUP=1537261122_2018_09_18_9.2.5

如果出現多個done的信息,說明整個gitlab數據就已經正常恢復完畢。

2.3 啟動gitlab服務

恢復完畢以后,我們現在來啟動gitlab,使用以下命令:

gitlab-ctl start

強烈建議:重啟該新服務器。

三、References:

  1. gitlab的備份與恢復


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM