gitlab数据迁移
0x00 简介
最近由于服务器到期,需要把服务器上面Docker跑的gitlab迁移到另一台服务器上面。
本打算直接迁移挂载目录,然后再重新用Docker跑一遍。
然而最后发现,这样虽然数据全都迁移过来了,但是git的ssh协议无法使用,只能通过http来拉取代码。
虽然这样不影响使用,但是对自动化部署有一些影响,所以决定换种方法进行数据迁移。
0x01 迁移
数据备份
gitlab-rake gitlab:backup:create
使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1393513186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分(登陆用户的信息和代码), 其中开头的1393513186是备份创建的日期.
数据恢复
先停止相关数据的连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
将上面的压缩包,导入到新的gitlab的/var/opt/gitlab/backups目录下
从备份中恢复数据
gitlab-rake gitlab:backup:restore BACKUP=1393513186
## 1393513186为_gitlab_backup.tar前面的部分,写在BACKUP后面
启动gitlab
gitlab-ctl start
0x02 注意
备份恢复的时候需要和原来的gitlab版本一样