关于备份操作需要各位提前对Gitlab有一定的认识,后面链接为Gitlab一些安装等基础知识,需要用到的可自行查看:CentOS离线安装gitLab,卸载,升级等操作(16.1-17.1)纯干货-CSDN博客
1. 了解配置文件
gitlab配置文件位置:/etc/gitlab/gitlab.rb,下面中的参数为默认配置,即安装后默认生成的。
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" # 备份文件存放目录
gitlab_rails['backup_archive_permissions'] = 0644 # 备份文件权限
gitlab_rails['backup_keep_time'] = 604800 # 备份保留天数为7天
注意:如果需要修改备份目录“gitlab_rails['backup_path'] ”,需要提前创建对应目录
2. 修改配置文件
如果修改了存放目录,需要把配置文件重载。
命令为: gitlab-ctl reconfigure
如果没有修改配置文件,不需要输入上述命令,直接执行备份命令即可。
3. 启动备份
在命令行直接输入命令,等待输出即可,后续附图。
命令为:gitlab-rake gitlab:backup:create
执行完以后在:/var/opt/gitlab/backups 目录下查看是否会输出tar包。
tar包大致格式为:数字_当前时间_gitlab版本_backup.tar
4. Gitlab备份恢复-关闭服务
首先需要停止相关数据的连接服务
命令为: gitlab-ctl stop unicorn
命令为: gitlab-ctl stop sidekiq
命令为: gitlab-ctl stop nginx
5. 启动恢复
注意:gitlab的恢复操作会先将当前所有的数据清空,然后恢复成对应tar中的数据。
命令为:gitlab-rake gitlab:backup:restore BACKUP=/var/opt/gitlab/********
Eg: gitlab-rake gitlab:backup:restore BACKUP=/var/opt/gitlab/172490301_2025_03_04_16.1.0-ee
会有两个提示:Do you want to continue (yes/no)? 输出yes回车即可
简单理解为:A同事第一天修改了test,后台生成了01_buckup.tar,B同事第2天增加了project2项目,后台备份默认生成了02_buckup.tar,C同事第3天增加了project3项目,但是不小心删除了01_buckup.tar,后台备份默认生成了03_buckup.tar。
现在需要用到初始项目,需要恢复到初始代码,可直接使用:上述命令+对应的tar包
6. 查看恢复状态
命令为:echo $? # 看看状态返回码是不是0
命令为:gitlab-ctl reconfigure # 重新加载配置文件
命令为:gitlab-ctl restart # 重启gitlab
命令为:gitlab-ctl status # 查看gitlab 状态
命令为:gitlab-rake gitlab:check SANITIZE=true # 检查恢复情况
之后在项目中查看数据是否恢复,上述操作都是在同一服务器中进行备份恢复操作,如果是在其他机器进行数据恢复,需要将配置文件gitlab.rb和gitlab-secrets.json两个文件复制到对应服务器的相同目录下。即A服务器的文件在/etc/gitlab/,B服务器也需要在/etc/gitlab/目录下。