gitlab备份和迁移

Posted huningfei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitlab备份和迁移相关的知识,希望对你有一定的参考价值。

一 迁移前提

1 首先保证两个服务器的gitlab版本一致,

sudo gitlab-rake gitlab:env:info   查看版本信息

2 设置目录权限

把目标机器里面的备份放到你的新机器上面的备份目录 默认是在/ var/opt/gitlab/backups 这个目录下,可以自己定义,默认备份的这个目录普通用户无查看权限,需要自己更改权限,默认一般是git用户

二 备份

要想迁移,前提是要先备份完整的gitlab数据
备份时需要保持gitlab处于正常运行状态,直接执行gitlab-rake gitlab:backup:create进行备份

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1530156812_2018_06_28_10.8.4_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1530156812_2018_06_28_10.8.4是备份创建的日期
技术图片

2.1 修改备份文件目录

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

gitlab_rails[‘backup_path‘] = "/var/opt/gitlab/backups"

修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可

2.2 设置备份过期时间

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb

gitlab_rails[‘backup_keep_time‘] = 604800        #以秒为单位

2.3 gitlab自动备份

创建定时任务


[root@gitlab ~]# crontab -e

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

三 迁移过程

首先要先拷贝备份好的数据到目标服务器所在的对应目录


# 先关闭连接数据库的进程
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq

#确认状态
sudo gitlab-ctl status

# 通过指定时间戳来执行restore操作,这个操作会复写gitlab的数据库

sudo gitlab-rake gitlab:backup:restore BACKUP=1544701014_2018_12_13_10.3.3  # 后面的这个时间戳是你备份的名字
#  注意:备份的时候,gitlab-rake后面的命令都不会自动补全,需要手写,恢复过程中需要按照提示输入两次yes并回车 


# 再次启动gitlab
sudo gitlab-ctl restart

# 通过下面命令检查gitlab
sudo gitlab-rake gitlab:check SANITIZE=true

恢复过程如图:
技术图片

然后访问网页查看效果,如果提示502等一分钟再刷新一次

以上是关于gitlab备份和迁移的主要内容,如果未能解决你的问题,请参考以下文章

gitlab 迁移 备份

Gitlab备份恢复与迁移

Gitlab配置备份升级迁移

gitlab 搭建 备份 升级 迁移恢复

Gitlab备份与恢复迁移与升级

gitlab备份还原及迁移