gitlab 11.11.8的备份与恢复及500错误的修复

gitlab已经集成了非常方便的备份和恢复命令,只要我们执行这些命令就能完成gitlab的备份与恢复了。

我想gitlab备份与恢复的目的无非就是将已经运行了很久的旧的gitlab服务,迁移到新的服务器上。如果你旧的gitlab上项目很少,就需要考虑迁移服务的必要性了,毕竟如果只有一两个项目的话可以通过拉取旧服务器上的项目再将这些项目推送到新服务器上就能完成迁移了。

👿 如果你的备份与恢复需要在不同的服务器之间进行,一定要注意两台服务器上gitlab的版本是否相同,否则会出现各种错误。

👿 如果是在不同的服务器之间进行备份恢复,一定要记得将旧服务器上的gitlab相关配置文件拷贝到新服务器上。

1.备份

通过命令行进行的备份并不会备份gitlab-secrets.jsongitlab.rb这两个文件,所以在备份之前要将原gitlab的这两个文件备份出来,拷贝到目标系统中。

# 使用下面的命令进行备份(11.11.8)
gitlab-rake gitlab:backup:create

在这里插入图片描述

如果出现上图所示,说明备份成功,备份程序会在/var/opt/gitlab/backups/目录下生成一个以*.tar的备份包,我们把这个备份包复制到目标服务器的相同目录下,然后使用下面的命令修改备份包文件的属主和属组。

chown git:git 1698302294_2023_10_26_12.3.5_gitlab_backup.tar

在这里插入图片描述

2.从备份包中恢复备份

停止与数据库连接的进程。让GitLab的其余部分运行:

gitlab-ctl stop puma
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1698302378_2023_10_26_11.11.8

注意BACKUP后的名称规则是去掉_gitlab_backup.tar
在这里插入图片描述
在恢复过程中会出现下图提示,选择yes,否则恢复无法继续进行。
在这里插入图片描述
在这里插入图片描述
恢复完成后,执行gitlab-ctl reconfigure命令,然后重启gitlab就可以了。

3.恢复后的gitlab某些操作出现报500错误的解决办法

出现这些错误的根本原因是在恢复备份的目标服务器上缺少原来系统中的密钥文件,以及配置文件,所以重建gitlab服务的时候,凡遇到密钥认证的地方就会报500错误了。
在这里插入图片描述

在排错的过程中,使用以下命令查看gitlab的相关日志。

tail -f /var/log/gitlab/gitlab-rails/production.log

上图就是我在恢复完成后操作删除某个项目时的报错,通过上述查看日志,可以确定是用户权限出现了问题,因此清空一下用户的token。使用gitlab-rails dbconsole命令登录到gitlab的数据库命令行。

sudo gitlab-rails dbconsole

在这里插入图片描述

在命令行模式下,通过SELECT * FROM public."ci_group_variables";语句查询一下public.”ci_group_variables”变量表中包含哪些信息。

SELECT * FROM public."ci_group_variables";

在这里插入图片描述通过上图可以看出这个表是空的。接下来查看一下public.”ci_variables”中的信息。

 SELECT * FROM public."ci_variables";

在这里插入图片描述

这个表同样也是空的。

接下来通过以下命令把项目、项目命令空间、以及应用设置、ci_runner的runner_token,runner_token_encrypted,等一系列与加密,token相关的值都置为空。

UPDATE projects SET runners_token = null, runners_token_encrypted = null;
UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
UPDATE application_settings SET runners_registration_token_encrypted = null;
UPDATE ci_runners SET token = null, token_encrypted = null;

在这里插入图片描述
执行完上述命令后,使用ctr+d退出命令模式。

然后再执行项目的删除操作,这次不会出现报错了。

gitlab密钥相关的两个文件。

 /var/opt/gitlab/gitlab-rails/etc/secrets.yml
/etc/gitlab/gitlab-secrets.json

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

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

相关文章

Android实验:contentprovider 实验+SQLite 数据库的实现

目录 SQLite实验目的实验内容实验要求项目结构代码实现结果展示 SQLite SQLite 是一个开源的嵌入式关系数据库,实现了自给自足的、无服务器的、配置无需的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库系统不同,…

第3课 获取并播放音频流

本课对应源文件下载链接: https://download.csdn.net/download/XiBuQiuChong/88680079 FFmpeg作为一套庞大的音视频处理开源工具,其源码有太多值得研究的地方。但对于大多数初学者而言,如何快速利用相关的API写出自己想要的东西才是迫切需要…

【unity学习笔记】捏人+眨眼效果+口型效果

一、vriod捏人 1.在vroidstudio软件中捏人 2.导出模型(.vrm) 二、vrid导入unity的插件 1.在Git上搜索、打开univrm。 2.找到release页面找到合适的插件版本。(VRM-0.116.0_0f6c) 3.将univrm导入到工程中(assets)。 三…

Python爬虫中的代理IP设置与实战策略

在Python爬虫中,使用代理IP设置是一种常见的策略,主要用于以下几个目的: 1. 避免被目标网站封禁:频繁的请求可能会引起目标网站的注意,导致你的IP被封锁。通过使用代理IP,你可以模拟来自不同地点和设备的请…

深入浅出理解TensorFlow的padding填充算法

一、参考资料 notes_on_padding_2 二、TensorFlow的padding算法 本文以TensorFlow v2.14.0版本为例,介绍TensorFlow的padding算法。 1. 引言 tf.nn.conv2d and tf.nn.max_pool2d 函数都有padding参数,在执行函数之前,都需要进行填充padd…

Linux自己的应用商店yum

💫Linux系统如何安装软件 在Linux系统中我们可以通过多种方式安装软件,常见方式有以下三种:   1.源代码安装   2.rpm包安装   3.使用yum软件包管理器安装   早期人们通过下载软件源代码,然后再经过交叉编译等一系列工作下…

ESP32:整合存储配网信息和MQTT笔记

文章目录 1.给LED和KEY的所用IO增加配置项1.1 增加配置文件1.2 修改相应的c源码 2. 把mqtt\tcp的工程整合到一起2.1 在何处调用 mqtt_app_start() 3. 测试MQTT4. 完整的工程源码 有一段时间没有玩ESP32,很多知识点都忘记了。今天测试一下MQTT,做个笔记。…

行车记录仪变清晰,变高清的办法一定要收藏

有时候我们会发现行车记录仪拍摄的视频不够清晰,特别是出现事故需要视频为证的时候,如果视频太模糊,很难获得交警的支持,那么如何让行车记录仪拍摄的视频变得更加清晰呢? 小编给大家分享几个办法,建议收藏…

SpringBoot 增量/瘦身部署jar 包

背景 SpringBoot 项目的部署一般采用全量jar 包方式部署相关项目,如果我们对相关的Contrller\Service\Dao\Mapper 层进行相关业务调整就需要重新编译全量jar 包(包大小约为200M左右)实在太麻烦了。 本文:重点讲解使用SpringBoot 的增量/瘦身…

Qt Creator可视化交互界面exe快速入门5

上一期介绍了加法计算器,本期介绍QObject定时器。 首先一样先建个工程,比如我这项目名为QObject 本期的任务就是制作图片在界面上显示,然后每秒定时切换,点击另一个暂停按钮,可以定格当前图片,即取消定时切换功能。 显示图片的我们可以使用显示里面的label 这个用于显示…

探索 3D 图形处理的奥秘

最近一年多来,在 3Dfx、Intel 们的狂轰滥炸中,在 Quake、古墓丽影们的推波助澜下,三维图形已经成为计算机迷眼中的又一个热点。3D 世界到底是怎样的神奇,我们又是怎样享受它的乐趣呢?就让我们来一探究竟吧。 图形基础…

【eclipse】eclipse开发springboot项目使用入门

下载eclipse Eclipse downloads - Select a mirror | The Eclipse Foundation 安装eclipse 其他一步一步即可 我们是开发java web选择如下 界面修改 Window->Preferences-> 修改eclipse风格主题 Window->Preferences->General->Appearance 修改字体和大小…