1.对应两个gitlab的版本
查看gitlab版本(二选一):
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
gitlab-rake gitlab:env:info
两台服务器的Gitlab版本必须是统一的,如有不统一,请先进行升级统一。
2.备份数据,将旧服务器上的数据打包
gitlab-rake gitlab:backup:create RAILS_ENV=production
3.数据迁移,将备份数据拷贝至新服务器(已经搭建好giltab同版本环境)
服务器之间的拷贝命令:scp
把对应版本的数据从旧服务器上拷贝到新服务器的gitlab备份目录里
scp 1614232417_2021_02_25_12.8.7_gitlab_backup.tar ubuntu@10.8.0.15:1614232417_2021_02_25_12.8.7_gitlab_backup.tar
cp 1614232417_2021_02_25_12.8.7_gitlab_backup.tar /var/opt/gitlab/backups/
4.执行备份文件恢复
新服务器执行恢复命令
chown -R git.git /var/opt/gitlab/backups/ 或者 chmod +777 文件 ##赋予文件权限
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1614232417_2021_02_25_12.8.7 ##恢复
注意:这里没有后面的_gitlab_backup.tar名字
一路yes,恢复是会先删除新服务器上所有gitlab数据的。
备份完成会有如下红字警告
files contain sensitive data``and are not included ``in` `this` `backup. You will need to restore these files manually
红字部分表示 gitlab.rb 和 gitlab-secrets.json 两个文件包含敏感信息。未被备份到备份文件中。需要手动备份
备份tar包一定要放到备份路径下。恢复是删除原有数据,恢复备份tar包中的数据。
在新服务器恢复备份,一定要记得将 gitlab.rb 和 gitlab-secrets.json 手动复制到相应路径下。
gitlab.rb路径:/etc/gitlab/gitlab.rb
gitlab-secrets.json路径:/etc/gitlab/gitlab-secrets.json
5.重载配置
gitlab-ctl reconfigure
6.重启gitlab
gitlab-ctl restart
7.check检查
gitlab-rake gitlab:check SANITIZE=true
至此gitlb数据搬家完成