Gitlab數據備份與恢復


Gitlab備份與恢復:

修改gitlab配置文件:
vim /etc/gitlab/gitlab.rb

#指定備份后數據存放的路徑、權限、時間配置 gitlab_rails['manage_backup_path'] = true #292行 開啟備份功能 gitlab_rails['backup_path'] = "/opt/gitlab_backup" #293行 指定備份的路徑 gitlab_rails['backup_archive_permissions'] = 0644 #296行 備份文件的權限 gitlab_rails['backup_keep_time'] = 7776000 #301行 備份保留時間(保留90天)
 

創建備份目錄並授權:
mkdir /opt/gitlab_backup && chown -R git.git /opt/gitlab_backup/

重新生效gitlab配置:
gitlab-ctl reconfigure


手動備份:
gitlab-rake gitlab:backup:create

查看備份:
ll -sh /opt/gitlab_backup/

編寫備份腳本,結合crontab實施自動定時備份,比如每天0點、6點、12點、18點各備份一次

編寫備份腳本:

cat /opt/gitlab_backup/git_back.sh #!/usr/bin/bash /usr/bin/gitlab-rake gitlab:backup:create CRON=1
 

chmod +x /opt/gitlab_backup/git_back.sh

注意:環境變量CRON=1的作用是如果沒有任何錯誤發生時, 抑制備份腳本的所有進度輸出

加入定時任務:

crontab -l 0 0,6,12,18 * * * /bin/bash /opt/gitlab_backup/git_back.sh > /dev/null 2>&1
 

刪除測試項目:


GItlab只能還原到與備份文件相同的gitlab版本。

在上面gitlab備份之前創建了opstands項目,然后不小心誤刪了opstands項目,現在就進行gitlab恢復操作

關閉數據庫連接服務:
gitlab-ctl stop unicorn && gitlab-ctl stop sidekiq

gitlab-ctl status
run: gitaly: (pid 38652) 472s; run: log: (pid 693) 15213s run: gitlab-monitor: (pid 38662) 472s; run: log: (pid 692) 15213s run: gitlab-workhorse: (pid 38665) 471s; run: log: (pid 694) 15213s run: logrotate: (pid 38673) 471s; run: log: (pid 691) 15213s run: nginx: (pid 38689) 470s; run: log: (pid 690) 15213s run: node-exporter: (pid 38695) 470s; run: log: (pid 685) 15214s run: postgres-exporter: (pid 38702) 470s; run: log: (pid 679) 15214s run: postgresql: (pid 38707) 469s; run: log: (pid 678) 15214s run: prometheus: (pid 38715) 469s; run: log: (pid 676) 15214s run: redis: (pid 38721) 468s; run: log: (pid 680) 15214s run: redis-exporter: (pid 38728) 468s; run: log: (pid 674) 15214s down: sidekiq: 43s, normally up; run: log: (pid 682) 15214s down: unicorn: 48s, normally up; run: log: (pid 688) 15213s
 

現在通過之前的備份文件進行恢復(必須要備份文件放到備份路徑下,這里備份路徑我自定義的/opt/gitlab_backup,默認的是/var/opt/gitlab/backups

恢復數據:

Gitlab的恢復操作會先將當前所有的數據清空,然后再根據備份數據進行恢復.

在指定備份文件恢復時,gitlab會自動補全后面的文件名,注意。

cd /opt/gitlab_backup gitlab-rake gitlab:backup:restore BACKUP=1553965778_2019_03_31_10.7.3 ---#文件名會自動補全-(注意)
 

從web界面查看項目是否恢復:


免責聲明!

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



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