gitlab数据备份和迁移
...大约 2 分钟
自建的Gitlab服务器常常会因为使用时间的增长,其空间容量等硬件需求都需要升级,或者迁移至更高配置的服务器上。备份、迁移、恢复、升级过程如下
提示
本教程在centos7.9下操作
一. gitlab备份
通过rpm安装gitlab后,仓库默认存储路径为/var/opt/gitlab/git-data/repositories,如果要修改存储路径就修改配置文件
vi /etc/gitlab/gitlab.rb
# 在git_data_dirs下面添加 /data/gitdata
git_data_dirs({
"default" => {
"path" => "/data/gitdata"
}
})
# 停止当前的gitlab,重新加载配置
gitlab-ctl stop
gitlab-ctl reconfigure
# 重新加载后/data/gitdata目录下会多出repositories目录
# 启动gitlab
gitlab-ctl start
备份目录默认在 /var/opt/gitlab/backups,如果要修改,可以按照以下方法修改
vi /etc/gitlab/gitlab.rb
# 取消以下两行注释
# gitlab_rails['manage_backup_path'] = true
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
# 将gitlab_rails['backup_path']改为 /data/gitdata/backups即可
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/data/gitdata/backups"
# 保存配置后,重新配置
gitlab-ctl reconfigure
gitlab-ctl restart
开始备份
通过gitlab-rake命令备份gitlab,备份时gitlab需处于运行状态中,需要sudo权限,不然会报错,运行以下命令开始备份
sudo gitlab-rake gitlab:backup:create
使用以上命令,会在/var/opt/gitlab/backups目录下创建一个名称类似1688453993_2023_07_04_12.0.6_gitlab_backup.tar的压缩包,这个压缩包就是gitlab整个完整备份
该备份命令会备份gitlab仓库、数据库、用户、用户组、用户密钥、权限等信息
提示
/etc/gitlab/gitlab.rb 和 gitlab-secrets.json两个文件包含敏感信息,不会自动备份到备份文件中,需手动备份
修改以下配置,可以修改备份过期时间,过期会自动删除旧的备份
vi /etc/gitlab/gitlab.rb
gitlab_rails['backup_keep_time'] = 604800 # 单位:秒
二. gitlab恢复备份
提示
备份服务器和执行恢复命令的服务器必须安装相同版本的gitlab
开始恢复
停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
恢复gitlab仓库
# 恢复1688453993_2023_07_04_12.0.6_gitlab_backup.tar备份
cd /var/opt/gitlab/backups
gitlab-rake gitlab:backup:restore BACKUP=1688453993_2023_07_04_12.0.6
待恢复完成后,启动gitlab服务
gitlab-ctl start
三. gitlab迁移
整体思路
- 在新服务器上安装与备份相同版本的gitlab
- 将备份生成的压缩包1688453993_2023_07_04_12.0.6_gitlab_backup.tar上传到新服务器
开始迁移
提示
以下操作在新服务器中执行
停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
执行以下命令恢复备份
cd /var/opt/gitlab/backups
gitlab-rake gitlab:backup:restore BACKUP=1688453993_2023_07_04_12.0.6
恢复完成后,重启gitlab服务
gitlab-ctl start
Powered by Waline v2.15.5