gitlab的备份比较简单,咱们直接使用gitlab自己提供的命令进行备份便可。git
gitlab提供的备份命令为gitlab-rake,备份命令使用以下:shell
gitlab-rake gitlab:backup:create
该命令会备份gitlab仓库、数据库、用户、用户组、用户密钥、权限等信息。数据库
备份完成后备份文件会出如今/var/opt/gitlab/backups/
vim
固然备份的位置能够更换,使用以下命令:服务器
vim /etc/gitlab/gitlab.rb
修改上图backup_path
的值便可,以后使用gitlab-ctl reconfigure
使得配置生效ide
ps:备份文件的名称中1537261122_2018_09_18_9.2.5是这次备份的编号。该编号咱们会在后续恢复gitlab数据使用到。gitlab
若是要使gitlab自动进行备份的话,咱们能够经过crontab命令来实现自动备份。强烈建议使用系统crontab命令,而不是用户crontab。3d
以实现天天凌晨4点进行一次自动备份为例,系统的crontab配置以下:rest
vim /etc/crontab
0 4 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
code
而后重启crontab服务,以下:
systemctl restart crond
随着时间的推移gitlab备份文件愈来愈多,服务器的磁盘空间也不够大。
此时咱们就要删除部分旧的备份文件,gitlab也提供了删除旧的备份文件功能。该功能在gitlab的配置文件中,进行配置便可。
在此以保留7天以前的备份文件为例,以下:
vim /etc/gitlab/gitlab.rb
gitlab_rails[‘backup_keep_time’] = 604800
其中backup_keep_time是以秒为单位进行计算的,而后执行命令gitlab-ctl reconfigure
便可。
要验证gitlab备份的有效性,咱们能够把该备份文件复制到已经安装好gitlab服务器的/var/opt/gitlab/backups/目录下。而后进行数据恢复,最后访问并查看其数据完整性便可。
经过gitlab备份文件能够恢复gitlab全部的信息,包括仓库、数据库、用户、用户组、用户密钥、权限等信息。
ps:新服务器上的gitlab的版本号必须与建立备份时的gitlab版本号相同。
gitlab数据恢复比较简单,具体步骤以下:
在gitlab服务器上中止相关数据链接服务,命令以下:
gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
如今咱们要从1537261122_2018_09_18_9.2.5这个备份编号中,恢复数据,命令以下:
gitlab-rake gitlab:backup:restore BACKUP=1537261122_2018_09_18_9.2.5
若是出现多个done的信息,说明整个gitlab数据就已经正常恢复完毕。
恢复完毕之后,咱们如今来启动gitlab,使用如下命令:
gitlab-ctl start
强烈建议:重启该新服务器。