GitLab的日常备份恢复与迁移

GitLab创建备份

        使用gitlab Omnibus包安装非常简单,同样的备份恢复与迁移也非常简单。使用一条命令即可以创建完整的gitlab备份。

1
[root@git ~]# gitlab-rake gitlab:backup:create

01

        使用该命令会在/var/opt/gitlab/backups目录下创建一个1509992523_gitlab_backup.tar的压缩包,这个压缩包就是GitLab整个的完整备份,其中1509992523是备份创建的日期。

02

GitLab修改备份文件默认目录

        也可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录。

1
gitlab_rails['backup_path'] = '/mnt/backups'

        /mnt/backups为修改的存放备份的目录,修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可。

GitLab自动备份

        可以通过crontab使用备份命令实现自动备份

1
[root@git ~]# crontab -e

        加入计划任务,实现每天进行一次自动备份。

1
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

GitLab恢复

        同样,gitlab从备份恢复也非常简单。

1
2
3
4
5
6
7
8
9
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 从1393513186编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1509992523
# 启动Gitlab
sudo gitlab-ctl start

gitlab迁移

        迁移如同备份与恢复的步骤一样,只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果没修改过默认备份目录,如有修改就使用修改的备份目录),但是需要注意的是新服务器上的gitlab版本必须与创建备份时的gitlab版本号相同。