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步:测试,又可以看到之前创建的两个项目了

 

posted @ 2021-05-06 00:50  jamespeng2020  阅读(315)  评论(0)    收藏  举报