gitlab的数据迁移
数据迁移方式参考:
https://cloud.tencent.com/developer/article/1535601
问题描述:将gitlab从centos7服务器转移到ubuntu20.04服务器
gitlab版本:13.10.0
总体步骤:查看gitlab版本使其一致;数据备份;备份文件copy;恢复备份文件。
第一步:查看gitlab版本
原因:两台服务器上gitlab版本必须一致,不一致将会导致备份文件无法正常恢复
解决方案:查看centos7上gitlab的版本,在ubuntu20.04上安装同一版本的gitlab
安装以及升级教程:gitlab的安装与升级
查看gitlab版本的命令(二选一):
1 |
|
第二步:gitlab数据打包(centos7上操作)
gitlab自带数据打包功能,其命令为:gitlab-rake gitlab:backup:create RAILS_ENV=production
其中:RAILS_ENV=production不是必须,如果添加,必须在备份文件恢复的时候也要加上
此时报错:内存空间不足
解决方案:centos增加root盘存储空间
最终打包备份包的文件位置:/var/opt/gitlab/backups
文件名称:1652410945_2022_05_13_13.10.0_gitlab_backup.tar
解析:随机数字_年_月_日_var版本号_gitlab_backup.tar
另外其自动备份的时候不会将 gitlab-secrets.json与gitlab.rb进行备份,其只能进行手动备份,即需要手动将其转移出去。此文件最好备份过去,要不然数据恢复之后也会有问题
第三步:备份文件copy
采用SCP服务器之间的copy命令
1 |
|
问题:1、正确输入密码后,提示密码错误
2、提示没有没有权限进行文件copy
解决方案:
1、原因:命令:scp 文件 用户名@IP地址:文件存储路径,其中的主机名直接使用了root,而目标服务器的名称不是root,而是ubuntu(自己做系统的时候设置的)
ubuntu系统名称查看方法:
2、将两台服务器中的backups文件的权限全部设置为777
命令:
1 |
|
-R: 可以让文件夹下的子文件夹也被赋予上传的权限
第四步:恢复备份数据(ubuntu20.04上操作)
在恢复之前,需要关闭gitlab的相关组件:
命令如下:
1 |
|
注意:这里没有后面的_gitlab_backup.tar名字
一路yes,恢复是会先删除新服务器上所有gitlab数据的。
数据备份的恢复的时候注意安装包的完整性,本次安装过程中曾因为安装包损害导致备份数据无法正常恢复。