1. 程式人生 > 實用技巧 >gitlab備份和恢復

gitlab備份和恢復

備份

生產環境下,備份是必需的。需要備份的檔案有:配置檔案和資料檔案。

  • 備份配置檔案 配置檔案包含密碼等敏感資訊,不要和資料檔案放在一起。

    sh -c 'umask 0077; tar -cf $(data "+etc-gitlab-%s.tar") -C /etc/gitlab'
    
 
        Copied!
    

備份資料檔案 預設資料備份目錄是 /var/opt/gitlab/backups,手動建立備份檔案:

# Omnibus 方式安裝使用以下命令備份
sudo gitlab-rake gitlab:backup:create
 
        Copied!
    

日常備份,新增 crontab,執行 crontab -e

# 每天2點執行備份
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
 
        Copied!
    

如要修改備份週期和目錄,在/etc/gitlab/gitlab.rb中修改以下兩個選項

# 設定備份週期為7天 - 604800秒
gitlab_rails['backup_keep_time'] = 604800
# 備份目錄
gitlab_rails['backup_path'] = '/mnt/backups'
 
        Copied!
    

#
恢復

恢復之前,確保備份檔案所安裝 GitLab 和當前要恢復的 GitLab 版本一致。

  • 恢復配置檔案

    sudo mv /etc/gitlab /etc/gitlab.$(date +%s)
    # 將下面配置備份檔案的時間戳改為你所備份的檔案的時間戳
    sudo tar -xf etc-gitlab-1399948539.tar -C /
    
 
        Copied!
    

恢復資料檔案

# 將資料備份檔案拷貝至備份目錄
sudo cp 1393513186_gitlab_backup.tar /var/opt/gitlab/backups/

# 停止連線資料庫的程序
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq

# 恢復1393513186這個備份檔案,將覆蓋GitLab資料庫!
sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186

# 啟動 GitLab
sudo gitlab-ctl start

# 檢查 GitLab
sudo gitlab-rake gitlab:check SANITIZE=true