管理个人代码存储,可用性没有几个9的要求,但需要保障数据不丢失,综合考虑性价比,采用定期备份+百度网盘留档备份文件的方式进行。
注意:
- 备份和恢复要求在相同版本中实现
- 备份包括
- 实测/etc/gitlab/gitlab.rb 未覆盖,密钥被原gitlab信息覆盖
- 实测lfs,一并备份
具体操作如下:
备份
参考官网 https://docs.gitlab.com/ee/raketasks/backup_gitlab.html
配置
修改/etc/gitlab/gitlab.rb
,之后sudo gitlab-ctl reconfigure
使其生效
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "备份路径"
gitlab_rails['backup_keep_time'] = 7776000
# 清理时间为3个月 3*30*24*3600 ,单位是秒
执行
直接执行
sudo gitlab-backup create STRATEGY=copy CRON=1 # STRATEGY=copy解决数据快速变化的时候,产生错误; CRON=1 没报错不打印信息
得到文件1686474838_2023_06_11_15.3.2_gitlab_backup.tar
,文件名:时间戳_gitlab版本号_gitlab_backup.tar
定期自动执行
通过cron实现周期备份
sudo su -
crontab -e
插入如下内容,如每天2点执行
0 2 * * * /opt/gitlab/bin/gitlab-backup create STRATEGY=copy CRON=1
恢复
参考官网https://docs.gitlab.com/ee/raketasks/restore_gitlab.html
参考官方文档
要求
- 安装相同版本的gitlab
- 执行过
sudo gitlab-ctl reconfigure
,实际操作时,该文件已经预先配置好 - 已经启动
sudo gitlab-ctl start
步骤
- 备份文件放到
gitlab.rb
配置项gitlab_rails['backup_path']
中,默认路径/var/opt/gitlab/backups
- 修改文件拥有者为git
sudo chown git:git /var/opt/gitlab/backups/11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar
- 停止相关链接
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
# Verify
sudo gitlab-ctl status
- 恢复备份
sudo gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce
# 注意,BACKUP的值不是文件名,不写_gitlab_backup.tar
- 启动
sudo gitlab-ctl restart
- 检查
sudo gitlab-rake gitlab:check SANITIZE=true
sudo gitlab-rake gitlab:artifacts:check
sudo gitlab-rake gitlab:lfs:check
sudo gitlab-rake gitlab:uploads:check