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