gitlab數據備份與恢復
一、備份數據
1)修改配置文件
- /etc/gitlab/gitlab.rb
# gitlab_rails['backup_path'] 備份保存的位置,這里是默認位置,可修改成指定的位置
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_path'] = "/data/gitlab_backup/"
# (該配置可不處理)設置備份保存的時間,超過此時間的日志將會被新覆蓋
gitlab_rails['backup_keep_time'] = 604800 # 這里是默認設置,保存7天,配置文件中默認為注釋的
# 特別注意:
# 如果自定義了備份保存位置,則要修改備份目錄的權限,比如:
chown -R git.git /data/gitlab_backup/
- 配置完成后要重啟以使配置生效
# 重讀配置文件
gitlab-ctl reconfigure
# 重啟gitlab
gitlab-ctl restart
2)設置定時任務
crontab使用:https://www.cnblogs.com/linagcheng/p/15384800.html
# 每天凌晨2點定時創建備份
# 將一下內容寫入到定時任務中 crontab -e
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
# 備份策略建議:
# 本地保留3到7天,在異地備份永久保存
3)備份時間的識別
# 備份后的文件類似這樣的形式:1641278530_2022_01_04_10.7.5_gitlab_backup.tar,可以根據前面的時間戳確認備份生成的時間
date -d @1641278530
二、恢復數據
1)停止數據寫入服務
# 停止數據寫入服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
2)進行數據恢復並重啟
# 進行恢復
gitlab-rake gitlab:backup:restore BACKUP=1641278530_2022_01_04_10.7.5 # 這個時間戳就是剛剛備份的文件前面的時間戳
# 重啟
gitlab-ctl restart