单节点

1 备份

1.1 备份前 gitlab 的项目如图所示

image-20220613140835665

1.2 检查后台迁移任务

在升级到新的主要版本之前,请确保所有后台迁移已完全完成

这一点很重要。在后台迁移完成之前进行升级可能会导致数据损坏。

可在 http://{gitlaburl}/admin/background_jobs 中查看

image-20220613141122340

1.3 停掉服务

gitlab-ctl stop puma

gitlab-ctl stop sidekiq

1.4 进行备份

1.4.1 全量备份

如果加 STRATEGY=copy 参数可以不需要停止服务,但是添加这个参数是增加一倍存储空间

gitlab-backup create

1.4.2 只备份数据库

gitlab data 要通过IaaS平台备份磁盘

gitlab-backup create SKIP=uploads,builds,artifacts,lfs,registry,pages,repositories

1.5 查看

1
2
3
4
5
# pwd
/data/gitlab-data/data/backups
# ll -h
total 3.4G
-rwxr-xr-x 1 chrony polkitd 2.5G Jun 13 11:47 1655023648_2022_06_13_14.8.5_gitlab_backup.tar

1.6 增量备份

gitlab-backup create INCREMENTAL=yes STRATEGY=copy

1
2
3
# ll -h
total 3.4G
-rwxr-xr-x 1 chrony polkitd 2.5G Jun 13 11:47 1655052648_2022_06_13_14.8.5_gitlab_backup.tar

2 单节点还原

2.1 停掉服务

gitlab-ctl stop puma

gitlab-ctl stop sidekiq

2.2 还原数据

上面查到的文件名只保留版本前面的信息

按照提示输入两次 yes 并回车

gitlab-rake gitlab:backup:restore BACKUP=1655091528_2022_06_13_14.8.5

2.3 启动服务

1
2
3
4
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
sudo gitlab-rake gitlab:doctor:secrets

2.4 检测完整性

1
2
3
sudo gitlab-rake gitlab:artifacts:check
sudo gitlab-rake gitlab:lfs:check
sudo gitlab-rake gitlab:uploads:check

集群模式

1 进行备份

1.1 全量备份

如果加 STRATEGY=copy 参数可以不需要停止服务,但是添加这个参数是增加一倍存储空间

gitlab-backup create GITLAB_BACKUP_MAX_CONCURRENCY=3 GITLAB_BACKUP_MAX_STORAGE_CONCURRENCY=1 STRATEGY=copy

1.2 查看

1
2
3
4
5
# pwd
/data/gitlab-data/data/backups
# ll -h
total 3.4G
-rwxr-xr-x 1 chrony polkitd 2.5G Jun 13 11:47 1655023648_2022_06_13_14.8.5_gitlab_backup.tar

1.3 增量备份

gitlab-backup create INCREMENTAL=yes STRATEGY=copy

1
2
3
# ll -h
total 3.4G
-rwxr-xr-x 1 chrony polkitd 2.5G Jun 13 11:47 1655052648_2022_06_13_14.8.5_gitlab_backup.tar

2 集群还原

2.1 集群停掉服务

gitlab-ctl stop puma

gitlab-ctl stop sidekiq

sudo gitlab-ctl status

2.2 集群还原数据

上面查到的文件名只保留版本前面的信息

按照提示输入两次 yes 并回车

gitlab-rake gitlab:backup:restore BACKUP=1655091528_2022_06_13_14.8.5

2.3 集群启动服务

1
2
3
4
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
sudo gitlab-rake gitlab:doctor:secrets

2.4 集群检测完整性

1
2
3
sudo gitlab-rake gitlab:artifacts:check
sudo gitlab-rake gitlab:lfs:check
sudo gitlab-rake gitlab:uploads:check