zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

gitlab备份恢复(四)

备份 恢复 gitlab
2023-09-14 09:15:44 时间

1.gitlab备份恢复

1.1.修改gitlab备份路径

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb 
gitlab_rails['backup_path'] = "/data/gitlab_bak"			#gitlab备份存放路径
gitlab_rails['backup_keep_time'] = 604800				#保留多长时间的文件,以秒来算,这里表示7天

1.2.备份gitlab所有项目

[root@gitlab ~]# gitlab-rake gitlab:bakcup:create
备份结束后会看到在/data/gitlab_bak这个路径有一个tar包

如果希望每天备份可以通过cron计划任务来实现

在这里插入图片描述

1.3.删除项目

点击项目—设置—通用—高级展开—删除项目
在这里插入图片描述

页面依旧没有new_project项目

在这里插入图片描述

1.4通过备份还原项目

1)首先停掉gitlab的sidekiq、unicorn进程
[root@gitlab ~]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
[root@gitlab ~]# gitlab-ctl stop unicorn
ok: down: unicorn: 0s, normally up

2)还原
[root@gitlab ~]# ls /data/gitlab_bak/
1598174503_2020_08_23_12.0.3_gitlab_backup.tar
[root@gitlab ~]# gitlab-rake gitlab:backup:restore BACKUP=1598174503_2020_08_23_12.0.3			#只复制到版本位置

3)重启gitlab
[root@gitlab ~]# gitlab-ctl restart

还原过程:

输入yes

在这里插入图片描述

输入yes

20200823173033992

1.5.还原成功

在这里插入图片描述
在这里插入图片描述

2.扩展:从全备中恢复单个项目

1)进入具体的项目备份路径

[root@gitlab-bak-20-166 20210426]# cd repositories/technologyCenter/

2)可以看到有很多bundle结尾的文件

[root@gitlab-bak-20-166 technologyCenter]# ls
daily  freeShare.bundle  freeShare.wiki.bundle  onlineProblem  standardAndSystem.bundle  weekly.bundle  weekly.wiki.bundle

3)找到对应项目的bundle文件然后使用git clone即可还原出来文件

[root@gitlab-bak-20-166 technologyCenter]# git clone weekly.bundle
正克隆到 'weekly'...
接收对象中: 100% (18181/18181), 49.98 MiB | 42.31 MiB/s, done.
处理 delta 中: 100% (10621/10621), done.

4)查看文件内容

[root@gitlab-bak-20-166 technologyCenter]# ls weekly
测试支持部  产品设计部  技术运维部  平台开发部  西安研发部  中心例会周报  周报模板

5)到此还原成功,然后将项目提交到git上即可完成还原
在这里插入图片描述