在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设置有效的备份和恢复策略,确保数据安全和业务连续性。建议定期执行备份,并在必要时进行恢复测试。