作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
目录
- 一.手动备份配置文件
- 二.手动备份数据
- 三.模拟删除meta-data项目数据
- 1 删除meta-data项目
- 2 meta-data被删除成功
- 四.通过备份恢复meta-data项目数据
- 1 恢复前需要先停止puma和sidekiq服务
- 2 恢复时指定备份文件的时间部分,不要指定文件的全名
- 3 检查恢复是否成功
一.手动备份配置文件
- 备份配置文件:/etc/gitlab/gitlab.rb gitlab的配置文件/etc/gitlab/gitlab-secrets.json gitlab双因子验证等使用此文件- 备份配置文件案例:gitlab-ctl backup-etc [-p, --backup-path BACKUP_PATH]如果不指定"-p, --backup-path BACKUP_PATH",则默认备份至"/etc/gitlab/config_backup"。举个例子:如上图所示,若不指定备份路径,会使用gitlab默认的备份路径哟~如下图所示,备份的文件可以尝试解压观察里面的文件。参考链接:https://docs.gitlab.com/ee/raketasks/backup_restore.html
二.手动备份数据
- 不同版本的备份数据命令gitlab 12.2之后版本:gitlab-backup creategitlab 12:1 之前的版本:gitlab-rake gitlab:backup:create- 备份数据相关配置:默认在"/etc/gitlab/gitlab.rb"文件中指定备份路径,如果目录空间不足,可以修改新的目录。- gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"- 注意,修改完配置需要执行"gitlab-ctl reconfigure"备份的文件权限,所有者和所属组为git- gitlab_rails['backup_archive_permissions'] = 0644默认备份过期时长为7天,单位为s,之后会被自动删除。- gitlab_rails['backup_keep_time'] = 604800- 备份数据案例:gitlab-backup create 备份数据,如上图所示,备份完成会警告咱们要备份配置文件哟~但咱们已经备份过了,可以忽略该警告。
三.模拟删除meta-data项目数据
1 删除meta-data项目
如上图所示,依次点击鼠标后,就会弹出删除meta-data的项目的确认框,如下图所示。
2 meta-data被删除成功
如上图所示,删除会提示"meta-data"正在被删除,刷新页面后就看不到该提示了,如下图所示。
四.通过备份恢复meta-data项目数据
1 恢复前需要先停止puma和sidekiq服务
# gitlab-ctl stop puma
# gitlab-ctl stop sidekiq
# gitlab-ctl status温馨提示:puma服务:是一个用于 Ruby 应用程序的简单、快速、多线程和高度并发的HTTP 1.1服务器。sidekiq服务:存储用户在后台执行队列任务(异步执行)
2 恢复时指定备份文件的时间部分,不要指定文件的全名
# gitlab-backup restore BACKUP=1676332446_2023_02_13_15.6.7将前缀为"1676332446_2023_02_13_15.6.7"的备份文件进行恢复。如上图所示,此过程需要输入2次yes哟~# gitlab-ctl reconfigure恢复数据后,需要还原配置文件路径,并重新配置一下gitlab使其生效。值得注意的是,咱们并没有删除配置文件,而是删除了项目数据,此过程理论上应该是可用跳过的。# gitlab-ctl restart重启gitlab服务,确保每个服务都被重新拉起,如下图所示。温馨提示:旧版本恢复方法:- 恢复前需要先停止两个服务# gitlab-ctl stop puma# gitlab-ctl stop sidekiq- 恢复时指定备份文件的时间部分,不需要指定文件的名称。gitlab-rake gitlab:backup:restore BACKUP=备份文件的时间部分
3 检查恢复是否成功
如上图所示,项目名称被成功恢复啦。如下图所示,项目的数据也被成功恢复了哟。