一、数据备份
- 执行
gitlab-rake gitlab:backup:create
进行备份
可以到/var/opt/gitlab/backups找到备份包,解压查看,会发现备份的还是比较全面的,数据库、repositories、build、upload等分类还是比较清晰的。 - 备份gitlab.rb and gitlab-secrets.
cd /etc/gitlab 目录,备份gitlab.rb 和 gitlab-secrets两个文件
二、数据恢复
-
恢复前需要先停掉数据连接服务:
gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
-
如果是台空主机,没有任何操作,理论上不停这两个服务也可以。停这两个服务是为了保证数据一致性。如果你没修改过默认备份目录的话,将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups,执行下面的命令进行恢复:
gitlab-rake gitlab:backup:restore BACKUP=备份编号
上面的操作中,有两个注意点:
- 到底那个是备份编号? — _gitlab之前的部分都是;
- 600权限是无权恢复的。 — 这里改成了777;
后面再输入两次yes就完成恢复了。
恢复完成后,启动刚刚的两个服务,或者重启所有服务,再打开浏览器进行访问,发现数据和之前的一致:
gitlab-ctl start unicorn
gitlab-ctl start sidekiq
或
gitlab-ctl restart
还有一点要别注注意,根据以往的经验,通过备份文件恢复gitlab必须保证两台主机的gitlab版本一致,否则会提示版本不匹配。