GitLab備份與恢復

1、 備份gitlab

gitlab的備份比較簡單,咱們直接使用gitlab自己提供的命令進行備份便可。git

1.1 經過gitlab-rake命令備份gitlab

gitlab提供的備份命令爲gitlab-rake,備份命令使用以下:shell

gitlab-rake gitlab:backup:create

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

備份完成後備份文件會出如今/var/opt/gitlab/backups/
vim

固然備份的位置能夠更換,使用以下命令:服務器

vim /etc/gitlab/gitlab.rb

修改上圖backup_path的值便可,以後使用gitlab-ctl reconfigure使得配置生效ide

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

1.2 定時備份gitlab

若是要使gitlab自動進行備份的話,咱們能夠經過crontab命令來實現自動備份。強烈建議使用系統crontab命令,而不是用戶crontab。3d

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

vim /etc/crontab

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

而後重啓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便可。

2、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

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

3、References:

  1. gitlab的備份與恢復
相關文章
相關標籤/搜索