GitLab在CentOS上如何实现数据备份与恢复
导读:在 CentOS 上备份与恢复 GitLab 的完整实践 一 环境准备与关键配置 确认 GitLab 运行状态与版本:执行 gitlab-ctl status 查看服务;如需查看版本,可执行 cat /opt/gitlab/embedde...
在 CentOS 上备份与恢复 GitLab 的完整实践
一 环境准备与关键配置
- 确认 GitLab 运行状态与版本:执行
gitlab-ctl status查看服务;如需查看版本,可执行cat /opt/gitlab/embedded/service/gitlab-rails/VERSION。 - 备份目录与保留时间:编辑 /etc/gitlab/gitlab.rb,按需调整
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"(默认备份目录)gitlab_rails['backup_keep_time'] = 604800(保留 7 天,单位为秒)
- 使配置生效:
gitlab-ctl reconfigure(或gitlab-ctl restart)。 - 备份文件命名规则:默认生成类似 TIMESTAMP_gitlab_backup.tar 的归档,位于备份目录中。
二 手动备份步骤
- 执行全量备份:
sudo gitlab-rake gitlab:backup:create。备份完成后,归档会出现在 /var/opt/gitlab/backups(或自定义的backup_path)。 - 迁移/拷贝场景:将备份文件复制到目标机器的相同目录(例如使用
scp或rsync),并确保目标机器 GitLab 版本与源机器一致,以避免兼容性问题。
三 定时自动备份
- 使用系统计划任务
crontab定时执行备份(示例为每天 02:00 执行):0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
- 建议同时配置保留策略(见上节
backup_keep_time),避免磁盘被历史备份占满。
四 恢复步骤
- 准备与校验:
- 将备份文件放到目标机器的备份目录(如 /var/opt/gitlab/backups)。
- 确认目标机器 GitLab 版本与备份来源一致。
- 停止写入服务:
gitlab-ctl stop unicorngitlab-ctl stop sidekiq
- 执行恢复(两种等价方式,二选一):
- 使用时间戳编号:
gitlab-rake gitlab:backup:restore BACKUP=1690391227 - 使用完整文件名:
gitlab-rake gitlab:backup:restore BACKUP=1690391227_2023_07_27_12.3.4-ee - 恢复过程中会出现两次交互提示,输入 yes 继续。
- 使用时间戳编号:
- 启动与验证:
gitlab-ctl start(或gitlab-ctl restart)- 登录 Web 界面核对项目、仓库、用户与权限是否完整。
五 迁移与异地容灾建议
- 版本一致性:生产与恢复环境尽量保持 GitLab 版本一致,减少恢复失败与兼容风险。
- 配置调整:迁移后按需修改 /etc/gitlab/gitlab.rb 中的
external_url、邮件等配置,然后执行gitlab-ctl reconfigure & & gitlab-ctl restart。 - 传输与权限:跨机迁移使用
scp/rsync;备份文件属主建议为 git:git,权限不低于 0600,避免因权限不足导致恢复失败。 - 异地与自动化:可结合脚本与
cron将备份自动上传至异地存储(如对象存储/备份服务器),并在异地设置定期清理策略(如保留 14 天)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: GitLab在CentOS上如何实现数据备份与恢复
本文地址: https://pptw.com/jishu/763055.html
