gitlab备份和恢复

备份:
备份数据:
docker exec -it gitlab gitlab-rake gitlab:backup:create
查看数据备份:
root@gitlab:/# ls /var/opt/gitlab/backups/
1620297784_2021_05_06_13.3.5_gitlab_backup.tar
备份配置文件:
docker exec -it gitlab gitlab-ctl backup-etc
查看配置文件备份:
root@gitlab:/# ls /etc/gitlab/config_backup/
gitlab_config_1620298075_2021_05_06.tar

backup_keep_time参数可以自动清理多少天前的备份,默认是7天

第1步:准备新环境
模拟数据丢失:
docker rm -f gitlab
cd /opt
mv gitlab gitlab.bak
重新生成容器:
mkdir /opt/gitlab
GITLAB_HOME=/opt/gitlab
docker run --detach --hostname gitlab.ctnrs.com --publish 443:443 --publish 80:80 --publish 2222:22 --name gitlab --restart always --volume $GITLAB_HOME/config:/etc/gitlab --volume $GITLAB_HOME/logs:/var/log/gitlab --volume $GITLAB_HOME/data:/var/opt/gitlab gitlab/gitlab-ce:latest
查看log:
docker logs gitlab -f
第2步:拷贝备份文件
恢复:
cp /opt/gitlab.bak/data/backups/1620298583_2021_05_06_13.3.5_gitlab_backup.tar /opt/gitlab/data/backups/
第3步:停写库服务
[root@k8s-2 data]# docker exec -it gitlab bash
root@gitlab:/# gitlab-ctl stop unicorn
root@gitlab:/# gitlab-ctl stop puma
root@gitlab:/# gitlab-ctl stop sidekiq
root@gitlab:/# chown git.git /var/opt/gitlab/backups/1620298583_2021_05_06_13.3.5_gitlab_backup.tar
第4步:恢复数据
gitlab-rake gitlab:backup:restore BACKUP=1620298583_2021_05_06_13.3.5
第5步:恢复配置文件
#宿主机
cp gitlab.bak/config/config_backup/ gitlab/config/ -rf
# 容器
cd /etc/gitlab/config_backup/
tar xvf gitlab_config_1620298075_2021_05_06.tar
cp -rf etc/gitlab/* /etc/gitlab/
root@gitlab:~# gitlab-ctl reconfigure
查看服务是否都启动成功:
root@gitlab:~# gitlab-ctl status
run: alertmanager: (pid 384) 2614s; run: log: (pid 383) 2614s
run: gitaly: (pid 268) 2619s; run: log: (pid 267) 2619s
run: gitlab-exporter: (pid 358) 2615s; run: log: (pid 357) 2615s
run: gitlab-workhorse: (pid 3603) 405s; run: log: (pid 321) 2617s
run: grafana: (pid 3616) 406s; run: log: (pid 401) 2614s
run: logrotate: (pid 329) 2618s; run: log: (pid 328) 2618s
run: nginx: (pid 324) 2618s; run: log: (pid 323) 2618s
run: postgres-exporter: (pid 382) 2615s; run: log: (pid 381) 2615s
run: postgresql: (pid 265) 2620s; run: log: (pid 263) 2620s
run: prometheus: (pid 362) 2616s; run: log: (pid 361) 2616s
run: puma: (pid 3508) 477s; run: log: (pid 317) 2618s
run: redis: (pid 266) 2620s; run: log: (pid 264) 2620s
run: redis-exporter: (pid 360) 2616s; run: log: (pid 359) 2616s
run: sidekiq: (pid 3463) 488s; run: log: (pid 326) 2618s
run: sshd: (pid 29) 2640s; run: log: (pid 28) 2640s
第6步:测试,又可以看到之前创建的两个项目了

浙公网安备 33010602011771号