01 前言?
雖說Git是分布式的,但是自從經(jīng)歷了上次Jira/Confluence 數(shù)據(jù)丟失的慘痛教訓(xùn),為了以防萬一,還是每天備份一下吧
02 備份方式
gitlab在服務(wù)器的默認(rèn)備份文件存儲(chǔ)在以下文件夾
/var/opt/gitlab/backups
可以通過/etc/gitlab/gitlab.rb配置文件,查看一個(gè)和備份相關(guān)的配置項(xiàng),可自行修改路徑:
gitlab_rails['backup_path'] ="/var/opt/gitlab/backups"? ? #備份目錄可以修改
備份命令用gitlab自帶的
gitlab-rake gitlab:backup:create
假如備份路徑?jīng)]改,會(huì)在/var/opt/gitlab/backups目錄下生成一個(gè)tar文件,如下:
1530156812_2019_11_14_10.8.4_gitlab_backup.tar
其中,530156812_2019_11_14_10.8.4 這一串?dāng)?shù)字就是備份編號(hào),在恢復(fù)的時(shí)候用的到。
這里我們不修改路徑,加到crontab中定時(shí)執(zhí)行:
0? 2 *? *? * /opt/gitlab/bin/gitlab-rake gitlab:backup:create? >/dev/null2>&1
gitlab-ce自身集成的有自動(dòng)刪除備份配置。打開/etc/gitlab/gitlab.rb配置
gitlab_rails['backup_keep_time'] = 604800
設(shè)置備份保留7天(7x3600x24=604800)秒為單位。
大家可視磁盤空間設(shè)置備份文件保留周期
03 數(shù)據(jù)恢復(fù)
停掉數(shù)據(jù)連接服務(wù)
gitlab-ctl? stop? unicorn
gitlab-ctl? stop? sidekiq
恢復(fù)
gitlab-rake gitlab:backup:restoreBACKUP=備份編號(hào)
注:1、到底那個(gè)是備份編號(hào)?
? ? ? ? --- _gitlab之前的部分都是;
2、644默認(rèn)權(quán)限。
查看恢復(fù)狀態(tài):
gitlab-rake gitlab:checkSANITIZE=true
重啟服務(wù)
gitlab-ctl? start? unicorn
gitlab-ctl? start? sidekiq
或
gitlab-ctl restart
這里主要講備份,具體的參考文章為:Gitlab備份、遷移、恢復(fù)和升級(jí)