在CentOS系統上備份和恢復GitLab數據是一個重要的任務,以確保數據的安全性和業務的連續性。以下是詳細的備份和恢復步驟:
停止GitLab服務:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
備份GitLab數據目錄:
sudo mkdir /backup/gitlab
sudo rsync -a --delete /var/opt/gitlab/ /backup/gitlab/
備份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
壓縮備份文件:
sudo tar -czvf /backup/gitlab/backup.tar.gz /backup/gitlab/
刪除舊的備份文件(可選):
sudo find /backup/gitlab/ -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;
重新啟動GitLab服務:
sudo gitlab-ctl start
修改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天
重新配置GitLab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
設置定時任務:
sudo crontab -e
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
停止GitLab服務:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
恢復數據庫:
tar -xzf /backup/gitlab/backup.tar.gz
sudo gitlab-rake gitlab:backup:restore BACKUP=備份文件名
恢復倉庫文件:
cp -r repositories/* /var/opt/gitlab/git-data/repositories/
啟動GitLab服務:
sudo gitlab-ctl start
驗證恢復:
通過以上步驟,您可以在CentOS系統上為GitLab設置有效的備份和恢復策略,確保數據安全和業務連續性。建議定期執行備份,并在必要時進行恢復測試。