在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
文件,这两个文件包含了敏感数据,例如配置信息和加密密钥,因此在恢复备份时需要手动备份这两个文件。