- 创建备份
sudo gitlab-rake gitlab:backup:create
执行完备份命令后会在/backups目录下生成备份后的文件
如1598927822_2020_09_01_13.3.1_gitlab_backup.tar
之前修改配置文件:gitlab_rails['backup_path'] = "gitlab_backups"
1500809139是一个时间戳,从1970年1月1日0时到当前时间的秒数。
这个压缩包包含Gitlab所有数据(例如:管理员、普通账户以及仓库等等)。
备份配置文件:
cp /etc/gitlab/gitlab.rb /gitlab-backups/config_backup/gitlab.rb
cp /etc/gitlab/gitlab-secrets.json /gitlab-backups/config_backup/gitlab-secrets.json
自动备份:
crontab -e
0 11 * * * /gitlab-backups gitlab:backup:create CRON=1
- 停止服务
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
- 备份恢复
从指定时间戳的备份恢复(backups目录下有多个备份文件时):
sudo gitlab-rake gitlab:backup:restore BACKUP=/gitlab-backups/1599113594_2020_09_03
从默认备份恢复(backups目录下只有一个备份文件时):
sudo gitlab-rake gitlab:backup:restore
也可以在另一台主机上恢复数据(迁移)。将备份文件拷贝到/var/opt/gitlab/backups下
备份和恢复的GitLab版本尽量保持一致
cp /gitlab-backups/config_backup/gitlab.rb /etc/gitlab/gitlab.rb
cp /gitlab-backups/config_backup/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json
- 启动gitlab
sudo gitlab-ctl start
sudo gitlab-ctl reconfigure
- 查看恢复状态
gitlab-rake gitlab:check SANITIZE=true