Gitlab 灾难恢复
Docker数据卷损坏
git.emoney.cn 容器的运行环境在 192.168.42.73:/data/gitlab
其中 /data/gitlab/data 为gitlab容器数据卷
如果此中文件遭到破坏,造成gitlab容器无法正确运行,请按以下步骤操作
-
确定数据库连接正常
- DB_HOST=192.168.42.73
- DB_USER=gitlab
- DB_PASS=empassword
- DB_NAME=gitlabhq_production
-
从备份服务器得到备份文件,恢复最近正常的gitlab目录
cd /data mv gitlab gitlab_bak scp root@192.168.42.74:/data/backup/archive/gitlab_2018-01-13.tgz . # 具体时间视当时环境而定 tar xvzf gitlab_2018-01-13.tgz
-
重启容器组
cd gitlab docker-compose rm -f # 删除之前有问题的容器 docker-compose up -d # 启动
MySQL 数据库损坏
如果数据库损坏并无法恢复数据,可从gitlab自身每日备份的tar包中复原,按以下步骤操作
-
重新安装数据库
-
MySQL数据库中创建用户及库
CREATE USER 'gitlab'@'%' IDENTIFIED BY 'password'; CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; GRANT ALL PRIVILEGES ON `gitlabhq_production`.* TO 'gitlab'@'%';
-
停止容器,如果数据库连接参数有变,编辑容器编排配置
cd /data/gitlab docker-compose stop vim docker-compose.yml
-
运行数据恢复脚本
./rst_full_bk.sh ... # 按提示选择唯一的备份文件
-
再次启动容器
docker-compose up -d