首页主机资讯GitLab在CentOS上的备份恢复流程

GitLab在CentOS上的备份恢复流程

时间2026-01-16 06:37:03发布访客分类主机资讯浏览624
导读:CentOS 上 GitLab 备份与恢复流程 一 环境准备与前置检查 确认 GitLab 为 Omnibus 包安装,且版本为 CE/EE 一致(恢复时要求版本一致,避免兼容性问题)。 备份前建议先完成一次 gitlab-ctl rec...

CentOS 上 GitLab 备份与恢复流程

一 环境准备与前置检查

  • 确认 GitLab 为 Omnibus 包安装,且版本为 CE/EE 一致(恢复时要求版本一致,避免兼容性问题)。
  • 备份前建议先完成一次 gitlab-ctl reconfigure,确保配置生效;备份文件默认位于 /var/opt/gitlab/backups,并确保该目录有足够空间与正确权限(属主 git:git)。
  • 恢复前建议暂时避免新写入(如暂停 CI、避免用户推送),以减少数据不一致风险。

二 备份步骤

  • 配置备份目录(可选):编辑 /etc/gitlab/gitlab.rb,设置例如
    gitlab_rails[‘backup_path’] = ‘/opt/gitlab-backups’
    修改后执行:gitlab-ctl reconfigure 使配置生效。
  • 执行备份:
    • 推荐:gitlab-backup create(新版本命令)
    • 兼容:gitlab-rake gitlab:backup:create
  • 备份内容包含:仓库数据(Git repositories)数据库(PostgreSQL)上传文件(如头像、附件);生成的 tar 包通常位于配置的备份目录,文件名形如 < 时间戳> _gitlab_backup.tar< 时间戳> _< 日期版本> _gitlab_backup.tar
  • 建议同时备份关键配置文件(与数据分开存放):
    • /etc/gitlab/gitlab.rb
    • /etc/gitlab/gitlab-secrets.json(数据库加密密钥、CI/CD 变量、2FA 等敏感信息)
    • 如需保持原有邮件配置,可一并备份 /etc/postfix/ 相关文件。

三 恢复步骤

  • 将备份 tar 包复制到配置的备份目录(默认 /var/opt/gitlab/backups),并修正属主属组:
    chown git:git /var/opt/gitlab/backups
    chown git:git /var/opt/gitlab/backups/< 备份文件>
  • 准备配置文件:将旧环境的 gitlab.rbgitlab-secrets.json 覆盖到新环境对应路径(恢复时 secrets 必须一致,否则可能导致无法解密或登录异常)。
  • 停止写入相关进程(保持其他组件运行):
    • 新版本(使用 Puma):gitlab-ctl stop puma;gitlab-ctl stop sidekiq
    • 旧版本(使用 Unicorn):gitlab-ctl stop unicorn;gitlab-ctl stop sidekiq
  • 执行恢复(BACKUP 取值为备份文件名中 时间戳或时间戳_日期版本 部分,不含 “_gitlab_backup.tar” 后缀):
    gitlab-rake gitlab:backup:restore BACKUP=< 时间戳或时间戳_日期版本>
    恢复过程中通常会有两次交互式确认,输入 yes 继续。
  • 完成后执行:gitlab-ctl reconfigure 与 gitlab-ctl restart,访问页面校验项目、用户、Runner、密钥等是否正常。

四 定时备份与异地容灾

  • 定时备份(crontab 示例,每天 02:00 执行):
    0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
    可按需调整保留策略(如保留 30 天):在 gitlab.rb 中设置 gitlab_rails[‘backup_keep_time’] = 2592000(单位:秒)。
  • 异地备份(示例思路):
    • 使用 scp/rsync + SSH 免密 将备份目录自动同步到备份服务器;
    • 或在容器内执行备份后,由宿主机定时将容器内生成的备份文件拷贝并上传至远端存储。

五 常见问题与排错

  • 版本不一致导致恢复失败:恢复环境的 GitLab 版本与类型(CE/EE) 必须与备份时完全一致。
  • 权限问题:备份目录与 tar 包需属主 git:git,否则可能报权限拒绝。
  • secrets 不一致:缺少或错误的 gitlab-secrets.json 会导致数据库加密信息不可用,影响登录与 CI 变量解密。
  • 备份文件命名与 BACKUP 参数:BACKUP 应填写 时间戳或时间戳_日期版本(不含后缀),否则会提示找不到备份。
  • 服务未停干净:恢复时应停止 puma/unicorn 与 sidekiq,避免写入冲突;恢复后可再启动相关服务。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: GitLab在CentOS上的备份恢复流程
本文地址: https://pptw.com/jishu/781027.html
GitLab在CentOS上的版本兼容性如何 oracle数据库centos下的备份策略

游客 回复需填写必要信息