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
2
3
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

gitlab-rake gitlab:env:info

第二步: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
2
3
scp 文件 主机名@IP地址:文件存储路径

scp /var/opt/gitlabrbackups/1652410945_2822_85_13_13.10.8_gitlab_backup.t.ar ubuntu@1xx.16. xx.1xx:/var/opt/gitlab/backups/

问题:1、正确输入密码后,提示密码错误

  2、提示没有没有权限进行文件copy

解决方案:

1、原因:命令:scp 文件 用户名@IP地址:文件存储路径,其中的主机名直接使用了root,而目标服务器的名称不是root,而是ubuntu(自己做系统的时候设置的)

ubuntu系统名称查看方法:

2、将两台服务器中的backups文件的权限全部设置为777

命令:

1
sudo chmod -R 777 文件夹路径名

 -R: 可以让文件夹下的子文件夹也被赋予上传的权限

第四步:恢复备份数据(ubuntu20.04上操作)

在恢复之前,需要关闭gitlab的相关组件:

命令如下:

1
2
3
4
5
6
7
gitlab-ctl stop unicorn                #停止相关数据连接服务

gitlab-ctl stop sidekiq

chown -R git.git /var/opt/gitlab/backups/

gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1652410945_2822_85_13_13.10.8

注意:这里没有后面的_gitlab_backup.tar名字

 一路yes,恢复是会先删除新服务器上所有gitlab数据的。

数据备份的恢复的时候注意安装包的完整性,本次安装过程中曾因为安装包损害导致备份数据无法正常恢复。


gitlab的数据迁移
http://yuanql.top/2022/04/14/00_项目经历/信创项目/git与gitlab/gitlab的数据迁移/
作者
Qingli Yuan
发布于
2022年4月14日
许可协议