找回密码
 立即注册
搜索
查看: 156|回复: 0

GitLab 备份与恢复

[复制链接]

266

主题

0

回帖

1119

积分

管理员

积分
1119
发表于 2024-6-12 00:22:52 | 显示全部楼层 |阅读模式

备份

执行备份命令:

sudo gitlab-backup create

#如果是使用Docker部署的:
sudo docker exec -t <container name> gitlab-backup create

备份完成后会生成备份文件:<backup-id>_gitlab_backup.tar,其中的 <backup-id> 包含了备份时间、GitLab 版本等信息,例如:

1493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar

默认情况下备份的存储位置是:/var/opt/gitlab/backups

此外还应单独备份以下文件:

/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
/etc/gitlab/ssl
/etc/gitlab/trusted-certs

自动删除旧备份

如果想在备份时自动删除旧备份文件,可以修改备份文件的生存期,编辑 /etc/gitlab/gitlab.rb:

## Limit backup lifetime to 7 days - 604800 seconds
gitlab_rails['backup_keep_time'] = 604800

修改配置文件后需执行重新配置命令才能生效:

sudo gitlab-ctl reconfigure

恢复

从备份文件恢复 GitLab 需要一个可运行的实例,可以重新安装一个全新的程序,但要选用与备份文件一致的版本。恢复时原有数据会被清除!

首先应该手动恢复:

/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
/etc/gitlab/ssl
/etc/gitlab/trusted-certs

重新配置,执行:

sudo gitlab-ctl reconfigure

将要恢复的备份文件拷贝至:

/var/opt/gitlab/backups/(如果没改备份存储路径的话)

停止连接到数据库的进程:

sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl status #再次确认他们已被关闭

执行恢复命令:

sudo gitlab-backup restore BACKUP=<backup-id>
例如:
sudo gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce

恢复完成后重新启动并检查 GitLab:

sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true

验证数据库的值是否可以被解密,尤其是在还原了/etc/gitlab/gitlab-secrets.json或更换了服务器:

sudo gitlab-rake gitlab:doctor:secrets

为了确保恢复的可靠,还可以对上传文件做完整性检验:

sudo gitlab-rake gitlab:artifacts:check
sudo gitlab-rake gitlab:lfs:check
sudo gitlab-rake gitlab:uploads:check

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|棱讯科技 ( 粤ICP备2024228160号-2|粤公网安备44030002003510号 )

GMT+8, 2024-7-27 18:23 , Processed in 0.015198 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表