在Ubuntu上恢復GitLab數據通常涉及以下步驟:
創建備份目錄:
sudo mkdir -p /var/opt/gitlab/backups
sudo chown -R git:git /var/opt/gitlab
修改GitLab配置:
編輯 /etc/gitlab/gitlab.rb
文件,設置備份路徑和備份保留時間。
sudo vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800 # 備份7天
修改后,需要運行以下命令以重新加載配置文件:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
定時任務備份:
使用 crontab
設置定時任務,例如每天凌晨2點執行備份。
sudo crontab -e
# 添加以下行
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
手動執行腳本進行備份:
sudo gitlab-rake gitlab:backup:create
使用rsync進行增量備份(可選):
結合 rsync
進行增量備份,以節省空間和備份時間。
sudo rsync -avz --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lostfound"} /var/opt/gitlab/ /path/to/backup/directory/
停止相關服務: 為保證一致性,先停止服務:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
(其他服務無需停止。)
選擇并恢復備份文件:
將備份文件放到 /var/opt/gitlab/backups
目錄中,并賦予權限。
sudo cp /path/to/backup/file.tar /var/opt/gitlab/backups/
sudo chmod 777 /var/opt/gitlab/backups/file.tar
運行恢復命令:
sudo gitlab-rake gitlab:backup:restore BACKUP=1679122231_2024_06_41_13.9.7_gitlab_backup.tar
備份文件前綴為文件名的時間戳部分,例如 1679122231
。
恢復配置文件和SSL:
sudo cp /your/backup/path/gitlab.rb /etc/gitlab/gitlab.rb
sudo cp -r /your/backup/path/ssl /etc/gitlab/
啟動服務: 恢復完成后,啟動服務:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
驗證恢復: 登錄到GitLab界面,檢查是否成功恢復了所有數據,確保GitLab實例正常運行并可訪問。
請注意,數據恢復存在風險,操作前請立即停止寫入新數據,并確保您有最新的備份文件。如果您在恢復過程中遇到任何問題,建議聯系GitLab官方支持或專業人士以獲得幫助。