01 前言
虽说Git是分布式的,但是自从经历了上次Jira/Confluence 数据丢失的惨痛教训,为了以防万一,还是每天备份一下吧
02 备份方式
gitlab在服务器的默认备份文件存储在以下文件夹
/var/opt/gitlab/backups
可以通过/etc/gitlab/gitlab.rb配置文件,查看一个和备份相关的配置项,可自行修改路径:
gitlab_rails['backup_path'] ="/var/opt/gitlab/backups" #备份目录可以修改
备份命令用gitlab自带的
gitlab-rake gitlab:backup:create
假如备份路径没改,会在/var/opt/gitlab/backups目录下生成一个tar文件,如下:
1530156812_2019_11_14_10.8.4_gitlab_backup.tar
其中,530156812_2019_11_14_10.8.4 这一串数字就是备份编号,在恢复的时候用的到。
这里我们不修改路径,加到crontab中定时执行:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create >/dev/null2>&1
gitlab-ce自身集成的有自动删除备份配置。打开/etc/gitlab/gitlab.rb配置
gitlab_rails['backup_keep_time'] = 604800
设置备份保留7天(7x3600x24=604800)秒为单位。
大家可视磁盘空间设置备份文件保留周期
03 数据恢复
停掉数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
恢复
gitlab-rake gitlab:backup:restoreBACKUP=备份编号
注:1、到底那个是备份编号?
--- _gitlab之前的部分都是;
2、644默认权限。
查看恢复状态:
gitlab-rake gitlab:checkSANITIZE=true
重启服务
gitlab-ctl start unicorn
gitlab-ctl start sidekiq
或
gitlab-ctl restart
这里主要讲备份,具体的参考文章为:Gitlab备份、迁移、恢复和升级