gitlab备份和恢复

gitlab备份和恢复

一、gitlab仓库备份

过程如下

1.1、备份命令

gitlab-rake gitlab:backup:create

该命令会备份gitlab仓库、数据库、用户、用户组、用户密钥、权限等信息

image.png

备份完成后,备份文件会出现在路径:/var/opt/gitlab/backups/

image.png

ps:备份文件的名称中1571721802是此次备份的编号,该编号我们会在后续恢复gitlab数据使用到。

1.2、修改备份的路径(不需修改可以不看):

编辑gitlab.rb文件中backup_path的值即可,然后使用gitlab-ctl reconfigure命令使配置生效。

vim /etc/gitlab/gitlab.rb gitlab-ctl reconfigure

image.png

1.3、定时备份gitlab

我们使用crontab来实现自动备份。

crontab用法参考:https://tecadmin.net/crontab-in-linux-with-20-examples-of-cron-schedule/

ps:这里强烈建议在root账户下进行操作。

下面,以实现每天凌晨4点进行一次自动备份为例:

1.3.1、修改系统的crontab配置如下:

vim /etc/crontab 0 4 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

image.png

1.3.2、然后重启crontab服务:

systemctl crond restart //ps:centos 6 找不到systemctl,可以使用 service。 service crond restart

刚开始对这个定时备份持怀疑态度,所以写了一个每隔一分钟备份一次的配置(把上面的04都改成*即可),然后验证了这样配置是ok的。

          • root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
image.png

接着记得把配置修改回每天凌晨4点执行一次。

1.4、保留部分备份文件

随着时间的推移,gitlab备份的文件会越来越多,服务器的磁盘空间会不够。

此时我们就要删除部分旧的备份文件,gitlab也提供了删除旧的备份文件功能。该功能在gitlab的配置文件中,进行配置即可。

在此以保留7天之前的备份文件为例,如下:

vim /etc/gitlab/gitlab.rb

gitlab_rails['backup_keep_time'] = 604800

image.png

其中backup_keep_time是以秒为单位进行计算的,然后使用gitlab-ctl reconfigure命令使配置生效。

二、gitlab仓库恢复

要验证gitlab备份的有效性,我们可以把该备份文件复制到已安装好gitlab的服务器上,路径为/var/opt/gitlab/backups/,然后进行数据恢复,最后访问并查看数据完整性即可。

通过gitlab备份文件可以恢复gitlab所有的信息,包括仓库、数据库、用户、用户组、用户密钥、权限等信息。

ps****:新服务器上的gitlab的版本号必须与创建备份时的gitlab版本号相同。

附查看当前gitlab版本号命令

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

image.png

gitlab数据恢复的具体步骤如下:

2.1停止相关数据连接服务

在gitlab服务器上停止相关数据连接服务,命令如下:

gitlab-ctl stop unicorngitlab-ctl stop sidekiq

image.png

2.2恢复gitlab仓库

先将之前备份的文件拷贝到以下路径

cd /var/opt/gitlab/backups/

rz

ll -h

image.png

现在我们要从1571721802这个备份编号中,恢复数据,命令如下:

gitlab-rake gitlab:backup:restore BACKUP=1571721802

期间会看到很多[DONE],最后输入一个yes。

image.png

2.3启动gitlab

恢复完毕以后,我们现在来启动gitlab,使用以下命令:

sudo gitlab-ctl start

强烈建议:重启该新服务器

2.4验证恢复后的gitlab完整性

访问gitlab地址,发现之前备份的都恢复了。

image.png

你可能感兴趣的:(gitlab备份和恢复)