溫馨提示×

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界面是否正常訪問,驗證數據完整性。

注意事項

  • 版本匹配:恢復備份的GitLab版本必須與備份時一致,或者比備份時更新。
  • 備份文件安全性:備份文件可能包含敏感信息,請妥善保管。
  • 定期測試恢復流程:確保備份文件可用,避免災難時措手不及。

通過以上步驟,您可以在CentOS系統上為GitLab設置有效的備份和恢復策略,確保數據安全和業務連續性。建議定期執行備份,并在必要時進行恢復測試。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女