在Debian系統上,GitLab提供了內置的備份工具,可以備份整個GitLab實例,包括代碼庫、數據庫、配置文件等。以下是備份與恢復的詳細步驟:
使用gitlab-rake命令進行備份
使用以下命令可以創建備份:
sudo gitlab-rake gitlab:backup:create
這將在默認路徑 /var/opt/gitlab/backups
下生成一個包含所有GitLab數據的備份文件。
修改備份文件目錄
如果需要修改備份文件的保存目錄,可以在 /etc/gitlab/gitlab.rb
配置文件中設置 backup_path
:
gitlab_rails['backup_path'] '/path/to/backup'
修改后,需要運行 sudo gitlab-ctl reconfigure
來重新加載配置文件。
自動化備份
為了簡化備份操作,可以設置定時任務(Cron Job)自動執行備份命令。例如,每天凌晨2點執行備份:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
。
停止相關服務
在恢復之前,需要停止與GitLab相關的服務,包括unicorn和sidekiq:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
選擇并恢復備份文件
選擇要恢復的備份文件,并運行以下命令恢復GitLab數據:
sudo gitlab-rake gitlab:backup:restore BACKUP TIMESTAMP
其中 TIMESTAMP
是備份文件的時間戳。
啟動GitLab服務
恢復完成后,重新啟動GitLab服務:
sudo gitlab-ctl start
檢查恢復狀態
登錄到GitLab界面,檢查是否成功恢復了所有數據,確保GitLab實例正常運行并可訪問。。
請注意,在進行備份和恢復操作時,應確保GitLab的版本一致,以避免恢復失敗。此外,備份文件中不包含 gitlab.rb
和 gitlab-secrets.json
文件,這兩個文件包含了敏感數據,例如配置信息和加密密鑰,因此在恢復備份時需要手動備份這兩個文件。