一 迁移前提
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等一分钟再刷新一次