centos

CentOS上GitLab的备份与恢复策略

小樊
34
2025-11-07 21:57:42
栏目: 智能运维

CentOS上GitLab备份与恢复策略

一、备份策略

1. 备份方式与命令

使用GitLab提供的gitlab-rake命令创建全量备份,涵盖仓库代码、数据库(PostgreSQL)、用户/组权限、SSH密钥等所有关键数据。执行命令:
sudo gitlab-rake gitlab:backup:create
该命令会在默认路径生成压缩包(格式:TIMESTAMP_gitlab_backup.tar,如1700000000_2025-03-17_15.0.0_gitlab_backup.tar)。

2. 备份路径配置

默认备份路径为/var/opt/gitlab/backups,可通过修改/etc/gitlab/gitlab.rb配置文件调整:

gitlab_rails['backup_path'] = "/mnt/backups"  # 自定义路径(如挂载的磁盘分区)
gitlab_rails['backup_archive_permissions'] = 0644  # 备份文件权限(可选)

修改后需运行sudo gitlab-ctl reconfigure使配置生效。

3. 自动化备份设置

通过crontab设置定时任务,实现每日自动备份(如凌晨2点):

crontab -e

添加以下行(CRON=1表示立即执行,忽略定时任务的延迟):
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
保存后,cron会自动执行备份任务。

4. 远程备份增强安全性

使用rsync将本地备份同步到远程服务器(如remote-server-ip/remote/backups目录),避免本地磁盘故障导致数据丢失:

rsync -avz /var/opt/gitlab/backups/ user@remote-server-ip:/remote/backups/

可将此命令添加到crontab中,与本地备份同步执行。

5. 备份保留策略

通过gitlab_rails['backup_keep_time']配置项设置备份保留时间(单位:秒),例如保留30天:

gitlab_rails['backup_keep_time'] = 30 * 24 * 60 * 60  # 30天

修改后运行sudo gitlab-ctl reconfigure,GitLab会自动清理过期备份。

二、恢复策略

1. 恢复前准备

2. 恢复操作步骤

3. 恢复后操作

4. 版本一致性要求

恢复时,GitLab版本必须与备份时的版本一致或更高(如备份时为15.0.0,恢复时可使用15.0.x或15.1.x)。若版本不匹配,需先升级/降级GitLab至对应版本,再进行恢复。

三、注意事项

0
看了该问题的人还看了