gitlab数据备份-恢复
1.Gitlab备份数据
docker exec gitlab gitlab-rake gitlab:backup:create #备份数据

[root@git208 ~]# ls /srv/gitlab/data/backups/ #查看备份数据

1.1、cron服务的启停
/sbin/service crond start 服务启动
/sbin/service crond stop 服务停止
/sbin/service crond restart 服务重新启动
/sbin/service crond reload 服务重新加载配置
或者
systemctl enable crond #计划任务开机启动
systemctl restart crond #重启
systemctl stop crond #停止
1.2备份脚本
vi /root/gitlab_backup.sh
#! /bin/bash
case "$1" in
start)
docker exec gitlab gitlab-rake gitlab:backup:create
;;
esac
1.3编辑任务每天两点备份
crontab -e
0 2 * * * /root/gitlab_backup.sh start
1.4加载计划任务
systemctl reload crond
2. 项目删除测试

危险操作注意备份

已经删除

1. 1开始还原测试
停止前状态查看
[root@zsl ~]# docker exec gitlab gitlab-ctl status

停止数据库相关服务
[root@zsl ~]# docker exec gitlab gitlab-ctl stop unicorn
[root@zsl ~]# docker exec gitlab gitlab-ctl stop sidekiq

已经停止
[root@zsl ~]# docker exec gitlab gitlab-ctl status

[root@git208 ~]# ls /srv/gitlab/data/backups/ #查看备份数据

1559360653_2019_06_01_11.1.4_gitlab_backup.tar
恢复操作 #进入docker操作是因为需要输入yes
docker exec -it gitlab /bin/bash

gitlab-rake gitlab:backup:restore BACKUP=1559361618_2019_06_01_11.1.4

gitlab-ctl start

docker exec gitlab gitlab-ctl status
数据正常恢复

命令整理
docker exec gitlab gitlab-rake gitlab:backup:create #备份数据 [root@git208 ~]# ls /srv/gitlab/data/backups/ #查看备份数据 1、cron服务的启停 /sbin/service crond start 服务启动 /sbin/service crond stop 服务停止 /sbin/service crond restart 服务重新启动 /sbin/service crond reload 服务重新加载配置 或者 systemctl enable crond #计划任务开机启动 systemctl restart crond #重启 systemctl stop crond #停止 2.vi /root/gitlab_backup.sh #! /bin/bash case "$1" in start) docker exec gitlab gitlab-rake gitlab:backup:create ;; esac 3.编辑任务每天两点备份 crontab -e 0 2 * * * /root/gitlab_backup.sh start 5.加载计划任务 systemctl reload crond 2.恢复 GItlab只能还原到与备份文件相同的gitlab版本。 假设在上面gitlab备份之前创建了test项目,然后不小心误删了test项目,现在就进行gitlab恢复操作: 1)停止相关数据连接服务 docker exec gitlab gitlab-ctl stop unicorn docker exec gitlab gitlab-ctl stop sidekiq docker exec gitlab gitlab-ctl status docker exec gitlab gitlab-rake gitlab:backup:create 1559360653_2019_06_01_11.1.4_gitlab_backup.tar docker exec gitlab gitlab-ctl start unicorn docker exec gitlab gitlab-ctl start sidekiq docker exec gitlab gitlab-rake gitlab:check SANITIZE=true 恢复操作 docker exec -it gitlab /bin/bash gitlab-rake gitlab:backup:restore BACKUP=1559361618_2019_06_01_11.1.4 docker exec gitlab gitlab-ctl start docker exec gitlab gitlab-ctl status [root@code-server backups]# gitlab-ctl stop unicorn ok: down: unicorn: 0s, normally up [root@code-server backups]# gitlab-ctl stop sidekiq ok: down: sidekiq: 1s, normally up [root@code-server backups]# gitlab-ctl status Gitlab的恢复操作会先将当前所有的数据清空,然后再根据备份数据进行恢复 [root@code-server backups]# gitlab-rake gitlab:backup:restore BACKUP=1510472027_2017_11_12_9.4.5 最后再次启动Gitlab [root@code-server backups]# gitlab-ctl start [root@code-server backups]# gitlab-ctl status gitlab-rake gitlab:check SANITIZE=true #检查恢复情况 然后稍等一会(如果启动gitlab后,访问出现500,这是因为redis等程序还没完全启动,等一会儿访问就ok了), 再次登录Gitlab,就会发现之前误删除的test项目已经恢复了 参考 https://www.cnblogs.com/kevingrace/p/7821529.html

浙公网安备 33010602011771号