在 GitLab 中,备份和恢复是运维中非常关键的部分,尤其是数据的安全与一致性。以下是具体操作指南。
GitLab 备份
GitLab 提供了内置的备份工具,通过 gitlab-backup
命令生成备份文件。
1. 备份环境准备
确保以下几点:
-
备份存储路径有足够的空间(默认路径为
/var/opt/gitlab/backups
)。 -
管理员权限。
-
GitLab 服务正常运行。
2. 创建备份
-
运行备份命令:
bashsudo gitlab-backup create
-
默认生成的备份文件名类似于
1672232546_2023_01_01_15.0.0_gitlab_backup.tar
。 -
文件包含 Git 仓库、数据库、上传文件、CI/CD 相关数据等。
修改备份路径(可选) :在 gitlab.rb
配置文件中指定备份路径:
bash
sudo vi /etc/gitlab/gitlab.rb
添加或修改以下配置:
ruby
gitlab_rails['backup_path'] = '/your/backup/path'
保存后,重新加载配置:
bash
sudo gitlab-ctl reconfigure
设置自动备份(可选):使用 Cron 定期备份,例如每天凌晨 3 点:
bash
0 3 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
备份配置文件(手动) :备份 gitlab.rb
和 SSL 证书:
bash
sudo cp /etc/gitlab/gitlab.rb /your/backup/path
sudo cp -r /etc/gitlab/ssl /your/backup/path
GitLab 恢复
恢复操作会覆盖现有数据,需谨慎操作。
1. 停止服务
为保证一致性,先停止服务:
bash
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
(其他服务无需停止。)
2. 恢复备份
-
将备份文件移动到备份目录:
bashsudo cp /your/backup/path/<备份文件>.tar /var/opt/gitlab/backups/
-
运行恢复命令:
bashsudo gitlab-backup restore BACKUP=<备份文件前缀>
-
<备份文件前缀>
为文件名的时间戳部分,例如1672232546
。 -
恢复时会提示确认覆盖现有数据,输入
yes
确认。
恢复配置文件和 SSL:
bash
sudo cp /your/backup/path/gitlab.rb /etc/gitlab/gitlab.rb
sudo cp -r /your/backup/path/ssl /etc/gitlab/
3. 启动服务
恢复完成后,启动服务:
bash
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
4. 验证恢复
-
检查 GitLab Web 界面是否正常访问。
-
验证数据完整性,如仓库、用户数据、配置等。
注意事项
-
版本匹配:恢复备份的 GitLab 版本必须与备份时一致,或者比备份时更新。
-
备份文件安全性:备份文件可能包含敏感信息,请妥善保管。
-
定期测试恢复流程:确保备份文件可用,避免灾难时措手不及。