由于Gitlab自身的兼容性问题,高版本的Gitlab无法恢复低版本备份的数据,需要注意在b服务器部署和a服务器一样版本的gitlab。
查看gitlab版本的命令:
[root@dev-new dev-tools]# gitlab-rake gitlab:env:info
System information
System: CentOS 7.4.1708
Current User: git
Using RVM: no
Ruby Version: 2.3.5p376
Gem Version: 2.6.13
Bundler Version:1.13.7
Rake Version: 12.0.0
Redis Version: 3.2.5
Git Version: 2.13.5
Sidekiq Version:5.0.4
Go Version: unknown
GitLab information
Version: 10.0.0
Revision: bbf5c73
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: postgresql
URL: http://localhost:8081
HTTP Clone URL: http://localhost:8081/some-group/some-project.git
SSH Clone URL: git@localhost:some-group/some-project.git
Using LDAP: no
Using Omniauth: no
GitLab Shell
Version: 5.9.0
Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories
Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks
Git: /opt/gitlab/embedded/bin/git
备份原服务器上的的数据:
gitlab-rake gitlab:backup:create RAILS_ENV=production
备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名文件名如1573539278_2019_11_12_10.0.0_gitlab_backup.tar
将生成的tar文件拷贝到新服务器上相应的backups目录下
可以利用scp进行直接拷贝。
scp root@192.168.10.2:/var/opt/gitlab/backups/1573539278_2019_11_12_10.0.0_gitlab_backup.tar /var/opt/gitlab/backups/
在新服务器恢复数据:
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1573539278_2019_11_12_10.0.0
如果提示权限不足,请修改文件操作权限后再执行上面的命令:
chmod 755 /var/opt/gitlab/backups/1573539278_2019_11_12_10.0.0_gitlab_backup.tar