首页主机资讯ubuntu gitlab 备份恢复怎么做

ubuntu gitlab 备份恢复怎么做

时间2025-12-09 17:14:03发布访客分类主机资讯浏览1476
导读:Ubuntu 上 GitLab 备份与恢复实操指南 一 备份 准备与配置 备份默认目录为:/var/opt/gitlab/backups。可在 /etc/gitlab/gitlab.rb 中自定义: 启用并设定路径:gitlab_r...

Ubuntu 上 GitLab 备份与恢复实操指南

一 备份

  • 准备与配置

    • 备份默认目录为:/var/opt/gitlab/backups。可在 /etc/gitlab/gitlab.rb 中自定义:
      • 启用并设定路径:gitlab_rails[‘manage_backup_path’] = truegitlab_rails[‘backup_path’] = “/new/backup/path”
      • 保留时长(秒):gitlab_rails[‘backup_keep_time’] = 7776000(示例为3个月
    • 修改后执行:sudo gitlab-ctl reconfigure 使配置生效。备份命令建议使用新接口:/opt/gitlab/bin/gitlab-backup create;旧版可用:gitlab-rake gitlab:backup:create。为减少写入冲突,可使用拷贝策略:STRATEGY=copy。定时任务示例(每天02:00):0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1(CRON=1 用于抑制无错误时的输出)。
  • 执行与校验

    • 手动创建备份:
      • 标准:sudo /opt/gitlab/bin/gitlab-backup create
      • 高变更环境:sudo /opt/gitlab/bin/gitlab-backup create STRATEGY=copy
    • 查看生成的归档(示例):ls -l /var/opt/gitlab/backups,文件名通常包含时间戳_版本号_gitlab_backup.tar。建议定期将备份拷贝到异地存储(如对象存储、挂载盘)。

二 恢复

  • 前提与准备

    • 恢复要求:GitLab 版本需与备份时一致;在新环境先完成安装并执行一次 sudo gitlab-ctl reconfigure,备份归档需位于配置的 backup_path(默认 /var/opt/gitlab/backups),并确保文件属主为 git:git(如:sudo chown git:git /var/opt/gitlab/backups/< 归档> )。
  • 标准恢复步骤

    • 停止写入服务:
      • 新版本多使用 Puma:sudo gitlab-ctl stop puma
      • 兼容旧版 Unicorn:sudo gitlab-ctl stop unicorn
      • 停止任务队列:sudo gitlab-ctl stop sidekiq
    • 执行恢复(BACKUP 值为时间戳,不含 “_gitlab_backup.tar” 后缀):
      • sudo /opt/gitlab/bin/gitlab-backup restore BACKUP=
      • 按提示输入 yes 确认
    • 启动与校验:
      • 启动:sudo gitlab-ctl start
      • 自检:sudo gitlab-rake gitlab:check SANITIZE=true
    • 如为迁移,恢复后按需调整 /etc/gitlab/gitlab.rb 中的 external_url 等配置,再 gitlab-ctl reconfigure

三 增量备份与远程存储

  • 增量备份
    • 需先有一个基础全量备份。自 GitLab 15.0 起使用:sudo gitlab-backup create INCREMENTAL=yes PREVIOUS_BACKUP=< base_timestamp> 14.9–14.10 使用 BACKUP=< base_timestamp> 指定基准备份。可按需跳过打包:SKIP=tar。示例:
      • 全量:sudo gitlab-backup create
      • 增量:sudo gitlab-backup create INCREMENTAL=yes PREVIOUS_BACKUP=1728000000_2025_01_01_15.11.0
  • 远程/挂载存储
    • 可将备份自动复制到本地挂载的共享(如 NFS/CIFS/SMB)。在 /etc/gitlab/gitlab.rb 配置:
      • gitlab_rails[‘backup_upload_connection’] = { :provider => ‘Local’, :local_root => ‘/mnt/backups’ }
      • gitlab_rails[‘backup_upload_remote_directory’] = ‘gitlab_backups’
    • 修改后 gitlab-ctl reconfigure 生效。

四 常见问题与最佳实践

  • 版本匹配:恢复时若版本不一致会报错,务必保持同一主版本(如 15.x → 15.x)。必要时先升级目标实例到与备份一致版本再恢复。
  • 配置文件与密钥:备份归档默认不包含 /etc/gitlab/gitlab.rbgitlab-secrets.json。跨环境迁移时,建议同时妥善备份与恢复这两个文件(或在新环境手动对齐密钥与必要配置),以避免 LDAP/SMTP/OAuth 等集成异常。
  • 备份保留与清理:通过 gitlab_rails[‘backup_keep_time’] 设置自动清理周期,或定期用 find 删除过期归档,避免磁盘被占满。
  • 高变更数据:在写入密集场景创建备份时使用 STRATEGY=copy,降低备份期间的数据一致性风险。

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


若转载请注明出处: ubuntu gitlab 备份恢复怎么做
本文地址: https://pptw.com/jishu/767272.html
ubuntu gitlab 权限管理如何设置 Debian如何查看所有环境变量

游客 回复需填写必要信息