Gitlab 2.5:Gitlab 数据备份与恢复
2.5:Gitlab 数据备份与恢复Gitlab 数据的备份与恢复使用的是 gitlab-rake 命令。备份与恢复前都要停止 Gitlab 的 unicorn 和 sidekiq 进程,这意味着备份的操作需要在确认没有用户使用的时间段进行,恢复就无所谓了,因为既然要恢复,那Gitlab的服务肯定已经受到了影响。2.5.1:Gitlab 数据备份2.5.1.1:停止 unicorn 和 sidek
2.5:Gitlab 数据备份与恢复
Gitlab 数据的备份与恢复使用的是 gitlab-rake
命令。
备份与恢复前都要停止 Gitlab 的 unicorn 和 sidekiq 进程,这意味着备份的操作需要在确认没有用户使用的时间段进行,恢复就无所谓了,因为既然要恢复,那Gitlab的服务肯定已经受到了影响。
2.5.1:Gitlab 数据备份
2.5.1.1:停止 unicorn 和 sidekiq 进程
root@gitlab:~# gitlab-ctl stop unicorn
ok: down: unicorn: 0s, normally up
root@gitlab:~# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
2.5.1.2:执行数据备份
在Gitlab服务器的任意目录下执行:
root@gitlab:~# gitlab-rake gitlab:backup:create
备份文件保存在/var/lib/gitlab/backups
目录下。
文件命名格式为:UNIX时间戳_日期_Gitlab版本_gitlab_backup.tar
root@gitlab:~# ll /var/opt/gitlab/backups/
total 120
drwx------ 2 git root 4096 Apr 23 17:44 ./
drwxr-xr-x 20 root root 4096 Apr 23 09:46 ../
-rw------- 1 git git 112640 Apr 23 17:44 1619171062_2021_04_23_11.11.8_gitlab_backup.tar
2.5.1.3:启动 unicorn 和 sidekiq 进程
root@gitlab:~# gitlab-ctl start unicorn
ok: run: unicorn: (pid 1982) 0s
root@gitlab:~# gitlab-ctl start sidekiq
ok: run: sidekiq: (pid 2013) 0s
启动后验证Gitlab的所有服务状态:
root@gitlab:~# gitlab-ctl status
run: alertmanager: (pid 1107) 426s; run: log: (pid 1083) 426s
run: gitaly: (pid 1100) 426s; run: log: (pid 1095) 426s
run: gitlab-monitor: (pid 1102) 426s; run: log: (pid 1093) 426s
run: gitlab-workhorse: (pid 1099) 426s; run: log: (pid 1087) 426s
run: logrotate: (pid 1105) 426s; run: log: (pid 1091) 426s
run: nginx: (pid 1110) 426s; run: log: (pid 1089) 426s
run: node-exporter: (pid 1098) 426s; run: log: (pid 1092) 426s
run: postgres-exporter: (pid 1097) 426s; run: log: (pid 1084) 426s
run: postgresql: (pid 1108) 426s; run: log: (pid 1088) 426s
run: prometheus: (pid 1101) 426s; run: log: (pid 1094) 426s
run: redis: (pid 1109) 426s; run: log: (pid 1096) 426s
run: redis-exporter: (pid 1103) 426s; run: log: (pid 1085) 426s
run: sidekiq: (pid 2013) 47s; run: log: (pid 1090) 426s
run: unicorn: (pid 1982) 54s; run: log: (pid 1086) 426s
2.5.2:Gitlab 数据恢复
在数据恢复前,删掉一些数据,以验证恢复数据的可用性。
删掉test-software/test-app1中的index.html:
2.5.2.1:停止 unicorn 和 sidekiq 进程
root@gitlab:~# gitlab-ctl stop unicorn
ok: down: unicorn: 0s, normally up
root@gitlab:~# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
2.5.2.2:执行数据恢复
恢复数据时,使用BACKUP
指定需要恢复的数据文件,gitlab-rake会自动到备份文件保存目录/var/lib/gitlab/backups
中查找相应的备份文件。
备份文件仅指定UNIX时间戳、日期、版本即可,后边的gitlab_backup.tar固定后缀不用指定。
root@gitlab:~# gitlab-rake gitlab:backup:restore BACKUP=1619171062_2021_04_23_11.11.8
恢复过程中会遇到两个确认消息,均输入yes
继续。
2.5.2.3:启动 unicorn 和 sidekiq 进程
root@gitlab:~# gitlab-ctl start unicorn
ok: run: unicorn: (pid 3129) 0s
root@gitlab:~# gitlab-ctl start sidekiq
ok: run: sidekiq: (pid 3160) 1s
2.5.2.4:验证数据恢复
index.html回来了:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)