gitlab備份和恢復(fù)
一见间、gitlab倉庫備份
過程如下
1.1、備份命令
gitlab-rake gitlab:backup:create
該命令會(huì)備份gitlab倉庫布疼、數(shù)據(jù)庫摊趾、用戶、用戶組游两、用戶密鑰砾层、權(quán)限等信息
備份完成后,備份文件會(huì)出現(xiàn)在路徑:/var/opt/gitlab/backups/
ps:備份文件的名稱中1571721802是此次備份的編號(hào)贱案,該編號(hào)我們會(huì)在后續(xù)恢復(fù)gitlab數(shù)據(jù)使用到肛炮。
1.2、修改備份的路徑(不需修改可以不看):
編輯gitlab.rb文件中backup_path的值即可宝踪,然后使用gitlab-ctl reconfigure命令使配置生效侨糟。
vim /etc/gitlab/gitlab.rb gitlab-ctl reconfigure
1.3、定時(shí)備份gitlab
我們使用crontab來實(shí)現(xiàn)自動(dòng)備份瘩燥。
crontab用法參考:https://tecadmin.net/crontab-in-linux-with-20-examples-of-cron-schedule/
ps:這里強(qiáng)烈建議在root賬戶下進(jìn)行操作秕重。
下面,以實(shí)現(xiàn)每天凌晨4點(diǎn)進(jìn)行一次自動(dòng)備份為例:
1.3.1厉膀、修改系統(tǒng)的crontab配置如下:
vim /etc/crontab 0 4 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
1.3.2溶耘、然后重啟crontab服務(wù):
systemctl crond restart //ps:centos 6 找不到systemctl二拐,可以使用 service。 service crond restart
剛開始對(duì)這個(gè)定時(shí)備份持懷疑態(tài)度凳兵,所以寫了一個(gè)每隔一分鐘備份一次的配置(把上面的04都改成*即可)百新,然后驗(yàn)證了這樣配置是ok的。
- root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
接著記得把配置修改回每天凌晨4點(diǎn)執(zhí)行一次庐扫。
1.4吟孙、保留部分備份文件
隨著時(shí)間的推移,gitlab備份的文件會(huì)越來越多聚蝶,服務(wù)器的磁盤空間會(huì)不夠杰妓。
此時(shí)我們就要?jiǎng)h除部分舊的備份文件,gitlab也提供了刪除舊的備份文件功能碘勉。該功能在gitlab的配置文件中巷挥,進(jìn)行配置即可。
在此以保留7天之前的備份文件為例验靡,如下:
vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_keep_time'] = 604800
其中backup_keep_time是以秒為單位進(jìn)行計(jì)算的倍宾,然后使用gitlab-ctl reconfigure命令使配置生效。
二胜嗓、gitlab倉庫恢復(fù)
要驗(yàn)證gitlab備份的有效性高职,我們可以把該備份文件復(fù)制到已安裝好gitlab的服務(wù)器上,路徑為/var/opt/gitlab/backups/辞州,然后進(jìn)行數(shù)據(jù)恢復(fù)怔锌,最后訪問并查看數(shù)據(jù)完整性即可。
通過gitlab備份文件可以恢復(fù)gitlab所有的信息变过,包括倉庫埃元、數(shù)據(jù)庫、用戶媚狰、用戶組岛杀、用戶密鑰、權(quán)限等信息崭孤。
ps****:新服務(wù)器上的gitlab的版本號(hào)必須與創(chuàng)建備份時(shí)的gitlab版本號(hào)相同类嗤。
附查看當(dāng)前gitlab版本號(hào)命令
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
gitlab數(shù)據(jù)恢復(fù)的具體步驟如下:
2.1停止相關(guān)數(shù)據(jù)連接服務(wù)
在gitlab服務(wù)器上停止相關(guān)數(shù)據(jù)連接服務(wù),命令如下:
gitlab-ctl stop unicorngitlab-ctl stop sidekiq
2.2恢復(fù)gitlab倉庫
先將之前備份的文件拷貝到以下路徑
cd /var/opt/gitlab/backups/
rz
ll -h
現(xiàn)在我們要從1571721802這個(gè)備份編號(hào)中辨宠,恢復(fù)數(shù)據(jù)遗锣,命令如下:
gitlab-rake gitlab:backup:restore BACKUP=1571721802
期間會(huì)看到很多[DONE],最后輸入一個(gè)yes彭羹。
2.3啟動(dòng)gitlab
恢復(fù)完畢以后黄伊,我們現(xiàn)在來啟動(dòng)gitlab泪酱,使用以下命令:
sudo gitlab-ctl start
強(qiáng)烈建議:重啟該新服務(wù)器
2.4驗(yàn)證恢復(fù)后的gitlab完整性
訪問gitlab地址派殷,發(fā)現(xiàn)之前備份的都恢復(fù)了还最。