GitLab提供进行备份和恢复的方式,整体来说,备份的过程会创建包含数据库、所有仓库和附件的归档文件。无论是CE版本还是EE版本,GitLab恢复数据的时候都需要满足版本一致的前提,即进行恢复的GitLab的版本和备份数据时的GitLab的版本一致。
备份文件
保存目录
备份文件缺省保存的目录在/etc/gitlab/gitlab.rb文件中可以进行配置,缺省状态下备份文件会保存在/var/opt/gitlab/backups目录下,可以打开如下注释,并根据需要修改备份文件的保存目录。
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
文件名
文件名格式:[TIMESTAMP]_gitlab_backup.tar
需要注意得是从GitLab 9.2版本开始[TIMESTAMP]的格式发生了变化
- GitLab 9.2之前:EPOCH_YYYY_MM_DD
- GitLab 9.2之后:EPOCH_YYYY_MM_DD_GitLab_version
而实际上这仅仅是一个文件名称的改变而已,比如使用旧版的备份命令在新版的GitLab中生成了EPOCH_YYYY_MM_DD_GitLab_version格式的文件,而实际上只修改此文件至原有版本也可以正常运行,详细可参看以下的验证示例:
GitLab备份
使用命令
可以使用如下命令进行GitLab的备份:
执行命令(GitLab 12.1之后版本):gitlab-backup create
或者
执行命令(GitLab 12.1及之前版本):gitlab-rake gitlab:backup:create
备份文件
备份所生成的tar归档文件,实际是有如下目录所组成,各目录所保存的数据内容和目录名称如下所示:
目录名称 | 备份文件说明 |
---|---|
db | 数据库备份:主要为PostgreSQL数据库数据内容 |
uploads | 附件数据备份 |
repositories | Git仓库数据备份 |
builds | CI Job输入日志等数据备份 |
artifacts | CI Job构件数据备份 |
lfs | LFS对象数据备 |