何亚斌

Gitlab 数据迁移、备份与恢复
Gitlab 数据迁移、备份与恢复  最近升级了一下 Gitlab 版本,升级过程中出现意外导...
扫描右侧二维码阅读全文
31
2019/03

Gitlab 数据迁移、备份与恢复

Gitlab 数据迁移、备份与恢复

  最近升级了一下 Gitlab 版本,升级过程中出现意外导致 Gitlab 异常退出。导致之前使用 Docker 搭建的 Gitlab 服务器一直在自动重启,无法正常提供服务。于是研究了一下 Gitlab 服务器数据的迁移、备份与恢复。


Gitlab 异常退出故障信息,折腾许久未能解决问题Σ(っ °Д °;)っ:
Gitlab 异常信息.jpg

由于 Gitlab 异常退出,导致 Docker 一直在自动重启 Gitlab 服务,无法执行备份命令导出备份数据:
Gitlab 备份异常.jpg

庆幸之前对 Gitlab 数据目录 /home/pbversion/Gitlab/ 进行过打包备份,且打包的备份数据时间节点后没有任何提交更新,最终不得以使用原先备份的数据进行了迁移操作来恢复服务。

一、数据迁移

1. 停止正在运行的 Gitlab 服务

# 若基于 Docker 部署,则停止对应的 Docker 运行实例 
docker stop gitlab 

# 若是在宿主机上直接部署,使用 gitlab-ctl stop 命令来停止服务
sudo gitlab-ctl stop

2. 在旧机器上完整打包备份 Gitlab 数据目录

# 这里举例本人 Gitlab 数据目录 /home/pbversion/Gitlab/ 
tar cfz gitlabbak.tar.gz /home/pbversion/Gitlab/ 
# 庆幸的是本人之前做过备份,所以直接执行了后续操作来完成 Gitlab 的服务恢复

3. 将 Gitlab 备份数据拷贝到新机器上并释放到对应目录

tar xfz gitlabbak.tar.gz

新机器上需修改对应 /etc/gitlab/gitlab.rb 配置文件(如访问 external_url )

4.新机器上启动 Gitlab 服务

# 若使用 Docker 部署方式参如下链接进行启动,将对应Gitlab数据目录使用你的存放目录来替换即可:
# https://www.go2aaron.com/blog/index.php/archives/112/#三、启动Docker镜像

# 若使用宿主机直接部署,使用 gitlab-ctl start 命令来启动服务
sudo gitlab-ctl start

新机器上的 Gitlab 最好和原机器上 Gitlab版本一致,或者新机器上使用兼容的新版本。
切不可跨版本升级。

二、使用备份命令备份数据

# Docker 内执行备份命令 
docker exec -it gitlab gitlab-rake gitlab:backup:create

# 若使用宿主机直接部署,使用 gitlab-rake gitlab:backup:create 命令
gitlab-rake gitlab:backup:create

默认备份目录为 /var/opt/gitlab/backups ,备份的文件名称类似于 XXXXXXXXX_gitlab_backup.tar 这样的名称。
可通过修改 /etc/gitlab/gitlab.rb 配置文件来修改默认备份目录:

gitlab_rails['backup_path'] = '/mnt/your_backups'

修改完成之后使用 gitlab-ctl reconfigure 命令重载配置文件即可

gitlab-ctl reconfigure

由于本人是使用 Docker 部署的,备份文件在宿主机中对应位置为 /home/pbversion/Gitlab/data/backups

三、使用恢复命令恢复数据

# 停止相关数据连接服务
gitlab-ctlstop unicorn
gitlab-ctl stop sidekiq
# 从XXXXXXXXX编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=XXXXXXXXX
# 启动 Gitlab
sudo gitlab-ctl start
Last modification:April 1st, 2019 at 12:38 am

3 comments

  1. oclclbkatp

    不错不错,我喜欢看 https://www.237fa.com/

  2. jvgiygwvkf

    怎么收藏这篇文章?

  3. umbidreefo

    想想你的文章写的特别好https://www.jiwenlaw.com/

Leave a Comment