Gitlab数据迁移
迁移说明:期望本地迁移gitlab至云上,本地是yum安装的,云上打算用容器启动
迁移条件:两边的gitlab版本相同
云服务器安装gitlab
安装docker
运行Gitlab镜像
# 拉取gitlab镜像
docker pull gitlab/gitlab-ce
#!/bin/bash
mkdir -p /data/gitlab
# 运行gitlab容器,挂载配置文件与数据
IMAGE_NAME='gitlab/gitlab-ce'
CONTAINER_NAME='gitlab-ce-zh'
CONTAINER_ID=`docker run \
-d \
-p 8000:80 \
-p 7443:443 \
-p 7022:22 \
--restart always \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
--name ${CONTAINER_NAME} \
${IMAGE_NAME}`
查看Gitlab初始化密码
cat /data/gitlab/config/initial_root_password
查看云上Gitlab版本号为14.4.2
docker exec gitlab-ce-zh /bin/cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
本地Gitlab数据备份以及版本升级
查看本地Gitlab版本号为13.6.0
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
备份本地Gitlab数据
gitlab-rake gitlab:backup:create
ls /var/opt/gitlab/backups/
升级本地Gitlab版本
13.6.0>13.12.11>14.0.10>14.4.2
每次升级完成执行gitlab-ctl reconfigure
,确认无报错并且可以访问gitlab后台。
yum install gitlab-ce-13.6.0 -y
yum install gitlab-ce-13.12.11 -y
yum install gitlab-ce-14.0.10 -y
yum install gitlab-ce-14.4.2 -y
备份14.4.2版本的数据
gitlab-rake gitlab:backup:create
上传备份到云端的/var/opt/gitlab/backups/并修改其权限
如果不修改权限,则无法还原备份
chmod 777 备份文件
终止server B上gitlab中的相关进程
gitlab-ctl stop sidekiq
gitlab-ctl stop unicorn
恢复数据
如果备份目录下只有一个备份文件,那么无需指定备份文件名。
gitlab-rake gitlab:backup:restore
安装过程中报错记录
报错1:
因升级到14.0.10报错,根据官网版本升级说明先升级13.12.x后解决
报错2:
在bash的shell命令执行
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,ci_stages,id,'[["id"]\, ["id_convert_to_bigint"]]']
报错3
在bash的shell命令执行
sudo gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,push_event_payloads,event_id,'[["event_id"]\, ["event_id_convert_to_bigint"]]']`