源码丢失Gitlab故障恢复方案及操作
一、操作背景
应用场景: |
众所周知,源码对整个公司来说是核心,而源码是存储在服务器上,试问,如果服务器挂了,那么开发人员就无法提交代码进行版本更替。这个时候就需要对故障进行恢复,那么如何进行恢复呢? |
二、如何保证恢复的源码是最新的?
方案一:实时备份是最好的方案,最好做定时任务。 |
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create CRON=1 |
小结:环境变量CRON=1的作用是如果没有任何错误发生时,抑制备份脚本的所有进度输出。 |
方案二:手动执行 [root@KMVS-CENTOS backups]# gitlab-rake gitlab:backup:create |
三、故障恢复操作
3.1 查看服务器上的备份 [root@KMVS-CENTOS backups]# ls 2017-11-21.gitlab_config_bakcup.tar.gz 1511256383_2017_11_21_gitlab_backup.tar |
3.2 先关闭连接数据库的进程 [root@KMVS-CENTOS backups]# gitlab-ctl stop unicorn [root@KMVS-CENTOS backups]# gitlab-ctl stop sidekiq |
3.3 开始恢复 [root@i-f1bb2kt0 backups]# gitlab-rake gitlab:backup:restore BACKUP=1511256383_2017_11_21 |
3.4 再次启动gitlab [root@KMVS-CENTOS backups]# gitlab-ctl start |
3.5 再次检查gitlab [root@KMVS-CENTOS backups]# gitlab-rake gitlab:check SANITIZE=true |