GitLab的基础使用-数据备份与恢复

           GitLab的基础使用-数据备份与恢复

                                        作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.GitLab的数据备份

1>.查看GitLab默认存储数据的目录

[root@gitlab201.yinzhengjie.org.cn ~]# ll /var/opt/gitlab/git-data/
total 12
drwx------  3 git  root 4096 Mar 13 04:43 ./
drwxr-xr-x 21 root root 4096 Mar 13 10:08 ../
drwxrws---  4 git  root 4096 Mar 18 10:25 repositories/
[root@gitlab201.yinzhengjie.org.cn ~]# 

2>.停止GitLab的数据服务

[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl status
run: alertmanager: (pid 18999) 0s; run: log: (pid 1630) 642s
run: gitaly: (pid 1699) 641s; run: log: (pid 1618) 642s
run: gitlab-exporter: (pid 1697) 641s; run: log: (pid 1620) 642s
run: gitlab-workhorse: (pid 1695) 641s; run: log: (pid 1631) 642s
run: grafana: (pid 1690) 641s; run: log: (pid 1625) 642s
run: logrotate: (pid 1696) 641s; run: log: (pid 1623) 642s
run: nginx: (pid 1692) 641s; run: log: (pid 1621) 642s
run: node-exporter: (pid 1638) 642s; run: log: (pid 1624) 642s
run: postgres-exporter: (pid 1689) 641s; run: log: (pid 1628) 642s
run: postgresql: (pid 1693) 641s; run: log: (pid 1619) 642s
run: prometheus: (pid 1687) 641s; run: log: (pid 1626) 642s
run: redis: (pid 1698) 641s; run: log: (pid 1617) 642s
run: redis-exporter: (pid 1686) 641s; run: log: (pid 1627) 642s
run: sidekiq: (pid 1694) 641s; run: log: (pid 1629) 642s
run: unicorn: (pid 1691) 641s; run: log: (pid 1622) 642s
[root@gitlab201.yinzhengjie.org.cn ~]#
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl status
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl stop unicorn
ok: down: unicorn: 0s, normally up
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl status
run: alertmanager: (pid 18999) 0s; run: log: (pid 1630) 791s
run: gitaly: (pid 1699) 790s; run: log: (pid 1618) 791s
run: gitlab-exporter: (pid 1697) 790s; run: log: (pid 1620) 791s
run: gitlab-workhorse: (pid 1695) 790s; run: log: (pid 1631) 791s
run: grafana: (pid 1690) 790s; run: log: (pid 1625) 791s
run: logrotate: (pid 1696) 790s; run: log: (pid 1623) 791s
run: nginx: (pid 1692) 790s; run: log: (pid 1621) 791s
run: node-exporter: (pid 1638) 791s; run: log: (pid 1624) 791s
run: postgres-exporter: (pid 1689) 790s; run: log: (pid 1628) 791s
run: postgresql: (pid 1693) 790s; run: log: (pid 1619) 791s
run: prometheus: (pid 1687) 790s; run: log: (pid 1626) 791s
run: redis: (pid 1698) 790s; run: log: (pid 1617) 791s
run: redis-exporter: (pid 1686) 790s; run: log: (pid 1627) 791s
down: sidekiq: 71s, normally up; run: log: (pid 1629) 791s
down: unicorn: 84s, normally up; run: log: (pid 1622) 791s
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl status

GitLab的基础使用-数据备份与恢复

3>.手动备份数据

[root@gitlab201.yinzhengjie.org.cn ~]# ll /var/opt/gitlab/backups/
total 8
drwx------  2 git  root 4096 Mar 13 04:43 ./
drwxr-xr-x 21 root root 4096 Mar 13 10:08 ../
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-rake gitlab:backup:create
2020-03-18 10:37:04 +0000 -- Dumping database ... 
Dumping PostgreSQL database gitlabhq_production ... [DONE]
2020-03-18 10:37:07 +0000 -- done
2020-03-18 10:37:07 +0000 -- Dumping repositories ...
 * china_bigdata/cmdb (@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b) ... [DONE]
[SKIPPED] Wiki
2020-03-18 10:37:08 +0000 -- done
2020-03-18 10:37:08 +0000 -- Dumping uploads ... 
2020-03-18 10:37:08 +0000 -- done
2020-03-18 10:37:08 +0000 -- Dumping builds ... 
2020-03-18 10:37:08 +0000 -- done
2020-03-18 10:37:08 +0000 -- Dumping artifacts ... 
2020-03-18 10:37:08 +0000 -- done
2020-03-18 10:37:08 +0000 -- Dumping pages ... 
2020-03-18 10:37:08 +0000 -- done
2020-03-18 10:37:08 +0000 -- Dumping lfs objects ... 
2020-03-18 10:37:08 +0000 -- done
2020-03-18 10:37:08 +0000 -- Dumping container registry images ... 
2020-03-18 10:37:08 +0000 -- [DISABLED]
Creating backup archive: 1584527828_2020_03_18_12.8.6_gitlab_backup.tar ... done
Uploading backup archive to remote storage  ... skipped
Deleting tmp directories ... done
done
done
done
done
done
done
done
Deleting old backups ... skipping
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data 
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
Backup task is done.
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# ll /var/opt/gitlab/backups/
total 168
drwx------  2 git  root   4096 Mar 18 10:37 ./
drwxr-xr-x 21 root root   4096 Mar 13 10:08 ../
-rw-------  1 git  git  163840 Mar 18 10:37 1584527828_2020_03_18_12.8.6_gitlab_backup.tar
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-rake gitlab:backup:create

GitLab的基础使用-数据备份与恢复

4>.启动GitLab服务

[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl start
ok: run: alertmanager: (pid 24886) 1352s
ok: run: gitaly: (pid 1699) 1352s
ok: run: gitlab-exporter: (pid 1697) 1352s
ok: run: gitlab-workhorse: (pid 1695) 1352s
ok: run: grafana: (pid 1690) 1352s
ok: run: logrotate: (pid 1696) 1352s
ok: run: nginx: (pid 1692) 1352s
ok: run: node-exporter: (pid 1638) 1353s
ok: run: postgres-exporter: (pid 1689) 1352s
ok: run: postgresql: (pid 1693) 1352s
ok: run: prometheus: (pid 1687) 1352s
ok: run: redis: (pid 1698) 1352s
ok: run: redis-exporter: (pid 1686) 1352s
ok: run: sidekiq: (pid 24907) 0s
ok: run: unicorn: (pid 24914) 0s
[root@gitlab201.yinzhengjie.org.cn ~]# 

5>.查看GitLab的WebUI

GitLab的基础使用-数据备份与恢复

二.模拟删除数据

1>.访问项目目录,如下图所示,点击"index.html"文件

GitLab的基础使用-数据备份与恢复

2>.如下图所示,点击"Delete"

GitLab的基础使用-数据备份与恢复

3>.点击"Delete file"文件

GitLab的基础使用-数据备份与恢复

删除成功后,会有如下图所示的提示信息。

GitLab的基础使用-数据备份与恢复

三.利用第一步备份GitLab的数据进行恢复操作

1>.恢复数据之前,先停止数据服务

[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl stop unicorn
ok: down: unicorn: 1s, normally up
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
[root@gitlab201.yinzhengjie.org.cn ~]# 

2>.执行恢复数据的命令

[root@gitlab201.yinzhengjie.org.cn ~]# ll /var/opt/gitlab/backups/
total 168
drwx------  3 git  root   4096 Mar 18 11:05 ./
drwxr-xr-x 21 root root   4096 Mar 13 10:08 ../
-rw-------  1 git  git  163840 Mar 18 10:37 1584527828_2020_03_18_12.8.6_gitlab_backup.tar
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-rake gitlab:backup:restore BACKUP=1584527828_2020_03_18_12.8.6      #指定要恢复的版本,注意BACKUP的名称格式为:unix时间戳_年_月_日_GitLab的版本号

GitLab的基础使用-数据备份与恢复

3>.如下图所示,第一个提示信息输入"yes"

GitLab的基础使用-数据备份与恢复

4>.如下图所示,第二个提示信息依旧输入"yes" 

GitLab的基础使用-数据备份与恢复

5>.再次启动GitLab的数据服务

[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl start unicorn
ok: run: unicorn: (pid 37482) 0s
[root@gitlab201.yinzhengjie.org.cn ~]# 
[root@gitlab201.yinzhengjie.org.cn ~]# gitlab-ctl start sidekiq
ok: run: sidekiq: (pid 37595) 1s
[root@gitlab201.yinzhengjie.org.cn ~]# 

6>.再次查看GitLab的WebUI,如下图所示

GitLab的基础使用-数据备份与恢复

相关推荐