GitLab 提供了内置的备份工具,使用以下命令创建完整备份:
sudo gitlab-rake gitlab:backup:create
默认备份包括: - 数据库 - 仓库数据 - 附件 - CI/CD 作业日志 - 容器注册表镜像 - GitLab Pages 内容 - 包 - 群组 wiki
在 /etc/gitlab/gitlab.rb
中可配置备份选项:
# 备份存储路径
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
# 备份保留时间(秒)
gitlab_rails['backup_keep_time'] = 604800 # 7天
# 备份压缩方式
gitlab_rails['backup_archive_permissions'] = 0644
配置后需运行 sudo gitlab-ctl reconfigure
使更改生效。
可以只备份特定部分:
# 只备份仓库
sudo gitlab-rake gitlab:backup:create SKIP=db,uploads
# 可用SKIP选项: db, uploads, repositories, builds, artifacts, lfs, registry, pages
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=TIMESTAMP
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
# 只恢复数据库
sudo gitlab-rake gitlab:backup:restore BACKUP=TIMESTAMP SKIP=repositories,uploads
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
sudo gitlab-rake gitlab:backup:create
- 参考官方升级路径建议 - 不能跨越大版本升级(如 12.x → 14.x 需先升级到 13.x)
sudo gitlab-ctl stop
# 对于Ubuntu/Debian
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get update
# 对于CentOS/RHEL
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
# Ubuntu/Debian
sudo apt-get install gitlab-ce
# CentOS/RHEL
sudo yum install gitlab-ce
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
# Debian/Ubuntu
sudo dpkg -i gitlab-ce-<version>.deb
# CentOS/RHEL
sudo rpm -Uvh gitlab-ce-<version>.rpm
sudo gitlab-ctl status
sudo gitlab-rake gitlab:check SANITIZE=true
备份策略:
升级策略:
监控:
文档:
通过遵循这些指南,您可以确保GitLab数据的安全性和系统的稳定性。