gitlab 的备份与回复


一、gitlab备份

1.确定备份目录

        gitlab 默认的备份目录为/var/opt/gitlab/backups,可通过配置gitlab.rb配置文件进行修改,如:

[root@localhost ~]# vim /etc/gitlab/gitlab.rb
#若要修改备份文件的存储目录话,打开下面选项的注释并修改为自己的备份路径即可;#gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"#gitlab备份所保留的时长,默认为七天
#Limit backup lifetime to 7 days - 604800 seconds
#gitlab_rails['backup_keep_time'] = 604800

    2.创建备份      

[root@localhost ~]# gitlab-backup create
#或者使用
[root@localhost ~]# gitlab-rake gitlab:backup:create
2023-03-15 23:01:47 -0400 -- Dumping database ... 
Dumping PostgreSQL database gitlabhq_production ... [DONE]
2023-03-15 23:01:51 -0400 -- done
2023-03-15 23:01:51 -0400 -- Dumping repositories ..
...
Creating backup archive: 1678935707_2023_03_15_14.9.5_gitlab_backup.tar ...                 
done
Uploading backup archive to remote storage  ... skipped
Deleting tmp directories ... done
done
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.

     3.查看备份的文件

        备份文件的格式为:EPOCH_YYYY_MM_DD_GitLab version_gitlab_backup.tar

 二、GitLab备份恢复


    1.gitlab恢复数据前提:

        GitLab的版本必须要与备份数据的版本一致!!!

     2.GitLab恢复步骤

        1:确保GitLab服务的启动可正常访问,并且版本必须和备份的数据版本一致;
        2:在恢复备份副本(备份文件)之前,首先确保本分副本位于/var/opt/gitlab/backups目录中;
        3:停止GitLab的数据库相关进程;

[root@localhost backups]# gitlab-ctl stop unicorn
[root@localhost backups]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
[root@localhost backups]# gitlab-ctl stop puma
ok: down: puma: 1s, normally up


        4:验证GitLab服务的状态;
            

[root@localhost backups]# gitlab-ctl status
run: alertmanager: (pid 215917) 83981s; run: log: (pid 15049) 202063s
run: gitaly: (pid 215926) 83980s; run: log: (pid 14326) 202224s
run: gitlab-exporter: (pid 215486) 84087s; run: log: (pid 14940) 202089s
run: gitlab-kas: (pid 215488) 84087s; run: log: (pid 14646) 202204s
run: gitlab-workhorse: (pid 215498) 84087s; run: log: (pid 14810) 202111s
run: grafana: (pid 215506) 84086s; run: log: (pid 15347) 201991s
run: logrotate: (pid 349753) 1282s; run: log: (pid 14230) 202236s
run: nginx: (pid 215522) 84086s; run: log: (pid 174881) 107021s
run: node-exporter: (pid 215532) 84085s; run: log: (pid 14899) 202095s
run: postgres-exporter: (pid 215538) 84086s; run: log: (pid 15185) 202053s
run: postgresql: (pid 215546) 84085s; run: log: (pid 14502) 202212s
run: prometheus: (pid 215555) 84085s; run: log: (pid 15003) 202076s
down: puma: 18s, normally up; run: log: (pid 140781) 127605s
run: redis: (pid 215576) 84084s; run: log: (pid 14276) 202231s
run: redis-exporter: (pid 215582) 84084s; run: log: (pid 14968) 202084s
down: sidekiq: 239s, normally up; run: log: (pid 14757) 202123s

        5:现在,使用备份副本的时间戳恢复备份;
           恢复命令如下         

 gitlab-backup restore BACKUP=1678977671_2023_03_16_14.9.5

           或

 gitlab-rake gitlab:backup:restore BACKUP=1678977671_2023_03_16_14.9.5

           BACKUP=备份归档文件时间戳 : 使用指定的备份归档文件进行恢复          

[root@localhost backups]# gitlab-backup restore BACKUP=1678977671_2023_03_16_14.9.5
Unpacking backup ... done
2023-03-16 10:58:44 -0400 -- Restoring database ... 
...
Do you want to continue (yes/no)? yes  #输入yes
...
Removing all tables. Press `Ctrl-C` within 5 seconds to abort
2023-03-16 15:00:50 UTC -- Cleaning the database ... 
2023-03-16 15:00:53 UTC -- done
Restoring PostgreSQL database gitlabhq_production ... ERROR:  must be owner of extension pg_trgm
ERROR:  must be owner of extension btree_gist
ERROR:  must be owner of extension btree_gist
ERROR:  must be owner of extension pg_trgm
...
2023-03-16 11:01:06 -0400 -- done
2023-03-16 11:01:06 -0400 -- Restoring uploads ... 
2023-03-16 11:01:06 -0400 -- done
2023-03-16 11:01:06 -0400 -- Restoring builds ... 
2023-03-16 11:01:06 -0400 -- done
2023-03-16 11:01:06 -0400 -- Restoring artifacts ... 
2023-03-16 11:01:06 -0400 -- done
2023-03-16 11:01:06 -0400 -- Restoring pages ... 
2023-03-16 11:01:06 -0400 -- done
2023-03-16 11:01:06 -0400 -- Restoring lfs objects ... 
2023-03-16 11:01:06 -0400 -- done
2023-03-16 11:01:06 -0400 -- Restoring terraform states ... 
2023-03-16 11:01:06 -0400 -- done
2023-03-16 11:01:06 -0400 -- Restoring packages ... 
2023-03-16 11:01:06 -0400 -- done
Do you want to continue (yes/no)? yes #输入yes即可Deleting backups/tmp ... done
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data 
and are not included in this backup. You will need to restore these files manually.
Restore task is done.

            在上面恢复的过程中可以看到有三处ERROR,这时不要慌张,急忙去打断恢复,亲测这三处ERROR不影响后续的恢复数据!只是权限的问题,下面会补充解决方案;

        注:可以在执行恢复命令时添加force=yes参数,这个参数的意思是在恢复过程中不再进行交互式询问(不用再输入yes了);
        命令如下:       

 gitlab-backup restore force=yes BACKUP=1678977671_2023_03_16_14.9.5

            或

gitlab-rake gitlab:backup:restore force=yes BACKUP=1678977671_2023_03_16_14.9.5

        6:重新加载重新启动GitLab组件:        

[root@localhost backups]# gitlab-ctl reconfigure
[root@localhost backups]# gitlab-ctl restart
ok: run: alertmanager: (pid 352840) 1s
ok: run: gitaly: (pid 352850) 0s
ok: run: gitlab-exporter: (pid 352864) 0s
ok: run: gitlab-kas: (pid 352866) 0s
ok: run: gitlab-workhorse: (pid 352872) 1s
ok: run: grafana: (pid 352884) 1s
ok: run: logrotate: (pid 352893) 0s
ok: run: nginx: (pid 352899) 0s
ok: run: node-exporter: (pid 352901) 0s
ok: run: postgres-exporter: (pid 352910) 0s
ok: run: postgresql: (pid 352921) 0s
ok: run: prometheus: (pid 352926) 0s
ok: run: puma: (pid 352928) 1s
ok: run: redis: (pid 352946) 1s
ok: run: redis-exporter: (pid 352952) 0s
ok: run: sidekiq: (pid 352958) 0

        7:通过清理数据库来检查GitLab组件是否都正常          

 [root@localhost backups]# gitlab-rake gitlab:check SANITIZE=true

        8:验证数据是否恢复
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/58069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins发布vue项目,版本不一致导致build错误

问题一 yarn.lock文件的存在导致在自动化的时候,频频失败问题二 仓库下载的资源与项目资源版本不一致 本地跑好久的一个项目,现在需要部署在Jenkins上面进行自动化打包部署;想着部署后今后可以省下好多时间,遂兴高采烈地去部署&am…

提升数据处理效率:TDengine S3 的最佳实践与应用

在当今数据驱动的时代,如何高效地存储与处理海量数据成为了企业面临的一大挑战。为了解决这一问题,我们在 TDengine 3.2.2.0 首次发布了企业级功能 S3 存储。这一功能经历多个版本的迭代与完善后,逐渐发展成为一个全面和高效的解决方案。 S3…

python 实现一个简单的浏览器引擎

1. 浏览器引擎工作原理 浏览器引擎是用来处理、渲染和显示网页内容的核心组件。其主要任务是将用户输入的URL所代表的网页资源加载并呈现出来,通常包括HTML、CSS、JavaScript以及各种多媒体内容。浏览器引擎的工作原理可以分为以下几个主要步骤: 1.1 U…

软件系统建设方案书(word参考模板)

1 引言 1.1 编写目的 1.2 项目概述 1.3 名词解释 2 项目背景 3 业务分析 3.1 业务需求 3.2 业务需求分析与解决思路 3.3 数据需求分析【可选】 4 项目建设总体规划【可选】 4.1 系统定位【可选】 4.2 系统建设规划 5 建设目标 5.1 总体目标 5.2 分阶段目标【可选】 5.2.1 业务目…

FlinkSQL之temporary join开发

在实时开发中,双流join获取目标对应时刻的属性时,经常使用temporary join。笔者在流量升级的实时迭代中,需要让流量日志精准的匹配上浏览时间里对应的商品属性,使用temporary join开发过程中踩坑不少,将一些经验沉淀在…

【开源免费】基于SpringBoot+Vue.JS网上超市系统(JAVA毕业设计)

本文项目编号 T 037 ,文末自助获取源码 \color{red}{T037,文末自助获取源码} T037,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

研发运营一体化(DevOps)能力成熟度模型

目录 应用设计 安全风险管理 技术运 持续交付 敏捷开发管理 基于微服务的端到端持续交付流水线案例 应用设计 安全风险管理 技术运 持续交付

Android 判断手机放置的方向

#1024程序员节|征文# 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 需求 老板:我有个手持终端,不能让他倒了,当他倒或者倾斜的时候要发出报警; 程序猿:我这..... 老板…

2024-09-28 地址空间与进程控制

一、进程地址空间 Pt.2 同一个变量,地址相同,其实是虚拟地址相同,内容不同其实是被映射到了不同的物理地址 1. 页表 内存保护与页表标志位 在操作系统中,页表用于管理内存的访问权限。每个页表项通常包含一组标志位&…

二:Python学习笔记--基础知识(1) 变量,关键字,数据类型,赋值运算符,比较运算符

目录 1. 变量 2. python关键字 3. python数据类型 3.1 数字类型 整型 int 浮点型 float 内置函数-type 3.2 字符串类型 3.3 布尔类型 3.4 空类型 3.5 列表类型 3.6 元组类型 3.7 字典类型 4. python赋值运算 5. python比较运算符 1. 变量 组成:必须是数…

基于SSM的BBS社区论坛系统源码

运行环境:ideamysql5.7jdk8maven 使用技术:ssmmysqlshirolayui 功能模块:用户管理、模板管理、帖子管理、公告管理、权限管理等

yolov9目标检测/分割预测报错AttributeError: ‘list‘ object has no attribute ‘device‘常见汇总

这篇文章主要是对yolov9目标检测和目标分割预测测试时的报错,进行解决方案。 在说明解决方案前,严重投诉、吐槽一些博主发的一些文章,压根没用的解决方法,也不知道他们从哪里抄的,误人子弟、浪费时间。 我在解决前&…

Lampiao靶机入侵实战

07-Lampiao靶机入侵实战 一、扫描采集信息 1、获取IP地址 nmap -sn 192.168.81.0/24获得IP地址为:192.168.81.1282、获取端口信息 由于nmap默认情况下只扫描常用的1000个端口,覆盖面并不全,所以建议全端口扫描 nmap -p 1-65535 192.168.…

DiffusionDet: Diffusion Model for Object Detection—扩散模型检测论文解析

DiffusionDet: Diffusion Model for Object Detection—扩散模型检测论文解析 这是一篇发表在CVPR 2023的一篇论文,因为自己本身的研究方向是目标跟踪,之前看了一点使用扩散模型进行多跟踪的论文,里面提到了DiffusionDet因此学习一下。 论文…

读数据工程之道:设计和构建健壮的数据系统21数据获取

1. 数据获取 1.1. 数据获取是将数据从一个地方移动到另一个地方的过程 1.1.1. 数据获取与系统内部获取是不同的 1.2. 数据获取是数据工程生命周期中将数据从源系统移入存储的一个中间步骤 1.3. 数据集成则是将来自不同来源系统的数据组合到一个新的数据集 1.4. 数据获取的…

数字后端零基础入门系列 | Innovus零基础LAB学习Day6

今天没有具体的数字IC后端lab实验。今天的重点是熟悉掌握静态时序分析STA中的几类timing path以及setup和hold检查机制(包含setup和hold计算公式)。 芯片流片失败的那些故事 数字后端零基础入门系列 | Innovus零基础LAB学习Day5 等大家把今天内容学习…

QT获取本机所有IP地址以及修改本机IP(注意区分Windows和Linux环境)

QT 获取本机所有 IP 地址 Chapter1 QT 获取本机所有 IP 地址获取本机所有 IP 地址,包括 IPV6的地址,需要引用 QNetworkInterface1.检索所有网络接口:2.获取接口的详细信息:3.获取接口的 IP 地址:4.用于网络诊断和监控&…

KEYSIGHT E4980A是德E4980AL 精密LCR表

Keysight E4980A 精密 LCR 表为各种元件测量提供了精度、速度和多功能性的最佳组合。 E4980A 在低阻抗和高阻抗范围内提供快速测量速度和出色的性能,是元件和材料的一般研发和制造测试的终极工具。 LAN、USB 和 GPIB PC 连接可提高您的设计和测试效率。 Keysight E4…

大语言模型的Scaling Law【Power Low】

NLP-大语言模型学习系列目录 一、注意力机制基础——RNN,Seq2Seq等基础知识 二、注意力机制【Self-Attention,自注意力模型】 三、Transformer图文详解【Attention is all you need】 四、大语言模型的Scaling Law【Power Low】 文章目录 NLP-大语言模型学习系列目录一、什么是…

练习LabVIEW第十九题

学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第十九题: 创建一个程序把另外一个VI的前面板显示在Picture控件中 开始编写: 在前面板放置一个二…