centos

CentOS上GitLab备份与恢复方法

小樊
41
2025-07-26 18:41:26
栏目: 智能运维

在CentOS系统上备份和恢复GitLab数据是一个重要的任务,以确保数据的安全性和业务的连续性。以下是详细的备份和恢复步骤:

备份方法

手动备份

  1. 停止GitLab服务

    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
    
  2. 备份GitLab数据目录

    sudo mkdir /backup/gitlab
    sudo rsync -a --delete /var/opt/gitlab/ /backup/gitlab/
    
  3. 备份GitLab数据库

    • 找到数据库名称、用户和密码,通常位于 /etc/gitlab/gitlab.rb 文件中。
    • 使用 pg_dump 命令备份数据库:
      sudo -u postgres pg_dump -Fc --role=gitlab-psql --password=YOUR_POSTGRESQL_PASSWORD gitlabhq_production > /backup/gitlab/db_backup.dump
      
  4. 压缩备份文件

    sudo tar -czvf /backup/gitlab/backup.tar.gz /backup/gitlab/
    
  5. 删除旧的备份文件(可选):

    sudo find /backup/gitlab/ -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;
    
  6. 重新启动GitLab服务

    sudo gitlab-ctl start
    

定时备份

  1. 修改GitLab配置文件

    sudo nano /etc/gitlab/gitlab.rb
    
    • 设置备份路径和保留时间:
      gitlab_rails['backup_path'] '/mnt/backups'
      gitlab_rails['backup_archive_permissions'] 0644
      gitlab_rails['backup_keep_time'] 604800 # 备份保留天数为7天
      
  2. 重新配置GitLab

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    
  3. 设置定时任务

    sudo crontab -e
    
    • 添加以下行每天凌晨2点执行备份:
      0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
      

恢复方法

  1. 停止GitLab服务

    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
    
  2. 恢复数据库

    • 解压备份文件:
      tar -xzf /backup/gitlab/backup.tar.gz
      
    • 恢复数据库:
      sudo gitlab-rake gitlab:backup:restore BACKUP=备份文件名
      
  3. 恢复仓库文件

    cp -r repositories/* /var/opt/gitlab/git-data/repositories/
    
  4. 启动GitLab服务

    sudo gitlab-ctl start
    
  5. 验证恢复

    • 检查GitLab Web界面是否正常访问,验证数据完整性。

注意事项

通过以上步骤,您可以在CentOS系统上为GitLab设置有效的备份和恢复策略,确保数据安全和业务连续性。建议定期执行备份,并在必要时进行恢复测试。

0
看了该问题的人还看了