当前位置: 首页 > news >正文

Gitlab 数据备份全攻略:命令、方法与注意事项

文章目录

  • 1、备份命令
  • 2、备份目录名称说明
  • 3、手工备份配置文件
    • 3.1 备份配置文件
    • 3.2 备份ssh文件
  • 4、备份注意事项
    • 4.1 停止puma和sicdekiq组件
    • 4.2 copy策略需要更多磁盘空间
  • 5、数据备份方法
    • 5.1 docker命令备份
    • 5.2 kubectl命令备份
    • 5.3 参数说明
    • 5.4、选择性备份
    • 5.5、非tar备份
    • 5.6、定时备份

1、备份命令

可以使用如下命令进行GitLab的备份:
gitlab-backup create(GitLab 12.1之后版本新增)
gitlab-rake gitlab:backup:create (GitLab 12.1及之前版本,之后也可以用)
备份默认生成的tar归档文件

2、备份目录名称说明

名称说明
db数据库数据内容
uploads附件数据备份
repositoriesGit仓库数据备份
buildsCI Job输入日志等数据备份
artifactsCI Job构件数据备份
lfsLFS对象数据备份
registry容器镜像备份
pagesGitLab Pages content数据备份

3、手工备份配置文件

3.1 备份配置文件

提示了由于安全的关系如下的配置文件需要手工去备份:
/etc/gitlab/gitlab-secrets.json
/etc/gitlab/gitlab.rb
示例:kubectl exec -it gitlab-7d7d97d574-5w88f – gitlab-ctl backup-etc
在这里插入图片描述
查看pod挂载到本地的目录路径里是否有gitlab_config_1677288885_2023_02_25.tar
在这里插入图片描述

3.2 备份ssh文件

需要登录到容器里进行备份,或者将/etc/ssh在yaml文件里直接写好挂载,示例备份:
在这里插入图片描述
在这里插入图片描述
通过持载的目录找到在本地为如下示例:
在这里插入图片描述

4、备份注意事项

4.1 停止puma和sicdekiq组件

为了保证备份的安全性和完整性,备份时最好停止puma和sicdekiq组件,或者尽量找数据量变化小的时段进行备份,以免造成数据不一致。

Kubectl示例:kubectl exec -it gitlab-7d7d97d574-5w88f – gitlab-ctl stop puma
在这里插入图片描述
docker示例:
在这里插入图片描述

4.2 copy策略需要更多磁盘空间

采用copy策略进行备份时会占用额外的一倍空间,因此采用此方式进行备份时需要保证磁盘剩余的空间是已经占用空间的2倍及以上

5、数据备份方法

5.1 docker命令备份

  1. Docker exec -it gitlab-name /bin/bsh进入到容器里面
  2. 执行gitlab-rake gitlab:backup:create STRATEGY=copy 或
    Gitlab-backup create STRATEGY=copy
  3. 直接执行:docker exec -it gitlab-name gitlab-rake gitlab:backup:create STRATEGY=copy
  4. 会在~$HOME/backups/查看到备份的数据文件,示例如下:
    在这里插入图片描述
    在这里插入图片描述

5.2 kubectl命令备份

kubectl exec -it gitlab-7d7d97d574-5w88f gitlab-rake gitlab:backup:create STRATEGY=copy
示例如下:
在这里插入图片描述

5.3 参数说明

STRATEGY=copy表示能在线数据备份时,如果数据变化过快,会导致备份命令报错, 此copy策略可以很好的解决这个问题。

5.4、选择性备份

参数:SKIP=xx,xx
跳过备份对分对像,可跳过的对像主要有db、uplads、artifacts 、lfs 、terraform_state 、registry 、pages、repositories、packages
示例:
使用gitlab-rake
kubectl exec -it gitlab-7d7d97d574-5w88f gitlab-rake – gitlab:backup:create SKIP=db STRATEGY=copy
在这里插入图片描述
使用gitlab-backup
kubectl exec -it gitlab-7d7d97d574-5w88f – gitlab-backup create SKIP=db STRATEGY=copy
在这里插入图片描述

5.5、非tar备份

备份时创建tar文件是备份最后一步,打包会消耗额外时间,在某些情况下采用不打包的方式会更加方便备份和恢复。
示例:
kubectl exec -it gitlab-7d7d97d574-5w88f – gitlab-backup create SKIP=tar STRATEGY=copy
在这里插入图片描述
在这里插入图片描述

5.6、定时备份

Gitlab默认没有定时备份机制,需要借助crontab来完成,如下:
示例:

*/2 * * * * kubectl exec -it gitlab-7d7d97d574-5w88f -- gitlab-backup create SKIP=tar STRATEGY=copy CRON=1
http://www.lryc.cn/news/507090.html

相关文章:

  • Vue|scoped样式
  • eBPF试一下(TODO)
  • 【数据安全】如何保证其安全
  • [创业之路-196]:华为成功经验的总结与教训简单总结
  • 使用 NVIDIA DALI 计算视频的光流
  • 【UE5】pmx导入UE5,套动作。(防止“气球人”现象。
  • vue预览和下载 pdf、ppt、word、excel文档,文件类型为链接或者base64格式或者文件流,
  • 前端如何实现大文件上传
  • 如何评估并持续优化AI呼入机器人的使用效果
  • 找不同,找原因
  • OpenCV 学习记录:首篇
  • Java项目常见基础问题汇总
  • git 删除鉴权缓存及账号信息
  • Windows中运行Linux(WSL)
  • 一键尺寸测量仪:磁芯尺寸测量的优选方案
  • [创业之路-197]:华为的发展路径启示
  • 【计算机网络】lab2 Ethernet(链路层Ethernet frame结构细节)
  • 路径规划之启发式算法之二十:麻雀搜索算法(Sparrow Search Algorithm,SSA)
  • 音频开发中常见的知识体系
  • 【返璞归真】score检验:似然比的得分检验(Likelihood Ratio Score Test)
  • 三维重建(六)——3D Representation Methods: A Survey(北大总结三维表征--2024.10出版)
  • html基础-认识html
  • UE5 跟踪能力的简单小怪
  • Ubantu22系统安装Miniconda3
  • 130、java中在使用new ArrayList<>(),在参数中传入一个集合的作用
  • Mybatis-plus-Join--分页查询
  • 对BG兼并点的理解-不断刷新版
  • python的游标是什么
  • 硬件---14---PCB学习:PCB封装库及布局操作
  • 什么是MyBatis