GitLab数据备份与恢复
创建备份
$ sudo gitlab-rake gitlab:backup:create
执行完备份命令后会在/var/opt/gitlab/backups
目录下生成备份后的文件,如1500809139_2017_07_23_gitlab_backup.tar
。1500809139是一个时间戳,从1970年1月1日0时到当前时间的秒数。这个压缩包包含Gitlab所有数据(例如:管理员、普通账户以及仓库等等)。
从备份恢复
本节说明如何在另一台主机上恢复数据。
将备份文件拷贝到/var/opt/gitlab/backups
下(备份和恢复的GitLab版本尽量保持一致,后文描述了版本不匹配的处理方法)。
停止相关数据连接服务
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
从备份恢复
从指定时间戳的备份恢复(backups目录下有多个备份文件时):
sudo gitlab-rake gitlab:backup:restore BACKUP=1500809139
从默认备份恢复(backups目录下只有一个备份文件时):
sudo gitlab-rake gitlab:backup:restore
启动Gitlab
sudo gitlab-ctl start
sudo gitlab-ctl reconfigure
修改默认备份目录【可选】
你也可以通过修改/etc/gitlab/gitlab.rb
来修改默认存放备份文件的目录:
gitlab_rails['backup_path'] = '/home/backup'
/home/backup
修改为你想存放备份的目录即可, 修改完成之后使用gitlab-ctl reconfigure
命令重载配置文件即可。
问题与解决
安装指定版本gitlab-ce
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce=8.16.6-ce.0
参考链接:
https://about.gitlab.com/installation/#ubuntu
https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce_8.16.6-ce.0_amd64.deb
重装后访问页面出现500或502
在恢复数据时,提示版本不匹配,卸载、指定版本重装后出现500或502错误,网上搜索了很多方法,都不解决问题,最终发现是卸载不彻底引起,完整的卸载方法为:
sudo gitlab-ctl stop
sudo apt-get --purge remove gitlab-ce
sudo rm -r /var/opt/gitlab
sudo rm -r /opt/gitlab
sudo rm -r /etc/gitlab
修改主机域名
sudo vi /etc/gitlab/gitlab.rb
external_url '你的网址'