Gitlab数据备份与恢复

Gitlab备份与恢复:

修改gitlab配置文件:

vim /etc/gitlab/gitlab.rb
#指定备份后数据存放的路径、权限、时间配置
gitlab_rails['manage_backup_path'] = true                  #292行      开启备份功能
gitlab_rails['backup_path'] = "/opt/gitlab_backup"         #293行      指定备份的路径
gitlab_rails['backup_archive_permissions'] = 0644          #296行      备份文件的权限
gitlab_rails['backup_keep_time'] = 7776000                 #301行      备份保留时间(保留90天)

创建备份目录并授权:

mkdir /opt/gitlab_backup && chown -R git.git /opt/gitlab_backup/

重新生效gitlab配置:

sudo gitlab-ctl reconfigure

手动备份:

gitlab-rake gitlab:backup:create

查看备份:

ll -sh /opt/gitlab_backup/

编写备份脚本,结合crontab实施自动定时备份,比如每天0点、6点、12点、18点各备份一次

编写备份脚本:

cat /opt/gitlab_backup/git_back.sh

#!/usr/bin/bash
/usr/bin/gitlab-rake gitlab:backup:create CRON=1
chmod +x /opt/gitlab_backup/git_back.sh

注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出

加入定时任务:

crontab -l

0 0,6,12,18 * * * /bin/bash /opt/gitlab_backup/git_back.sh > /dev/null 2>&1

删除测试项目:


GItlab只能还原到与备份文件相同的gitlab版本。

在上面gitlab备份之前创建了opstands项目,然后不小心误删了opstands项目,现在就进行gitlab恢复操作

关闭数据库连接服务:

gitlab-ctl stop unicorn && gitlab-ctl stop sidekiq
gitlab-ctl status
run: gitaly: (pid 38652) 472s; run: log: (pid 693) 15213s
run: gitlab-monitor: (pid 38662) 472s; run: log: (pid 692) 15213s
run: gitlab-workhorse: (pid 38665) 471s; run: log: (pid 694) 15213s
run: logrotate: (pid 38673) 471s; run: log: (pid 691) 15213s
run: nginx: (pid 38689) 470s; run: log: (pid 690) 15213s
run: node-exporter: (pid 38695) 470s; run: log: (pid 685) 15214s
run: postgres-exporter: (pid 38702) 470s; run: log: (pid 679) 15214s
run: postgresql: (pid 38707) 469s; run: log: (pid 678) 15214s
run: prometheus: (pid 38715) 469s; run: log: (pid 676) 15214s
run: redis: (pid 38721) 468s; run: log: (pid 680) 15214s
run: redis-exporter: (pid 38728) 468s; run: log: (pid 674) 15214s
down: sidekiq: 43s, normally up; run: log: (pid 682) 15214s
down: unicorn: 48s, normally up; run: log: (pid 688) 15213s

现在通过之前的备份文件进行恢复(必须要备份文件放到备份路径下,这里备份路径我自定义的/opt/gitlab_backup,默认的是/var/opt/gitlab/backups

恢复数据:

Gitlab的恢复操作会先将当前所有的数据清空,然后再根据备份数据进行恢复.

在指定备份文件恢复时,gitlab会自动补全后面的文件名,注意。

cd /opt/gitlab_backup
gitlab-rake gitlab:backup:restore BACKUP=1553965778_2019_03_31_10.7.3       ---#文件名会自动补全-(注意)

从web界面查看项目是否恢复:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wd520521

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值