1.迁移准备工作和思路

从a服务器迁移到b服务器,由于Gitlab自身的兼容性问题,高版本的Gitlab无法恢复低版本备份的数据,需要注意在b服务器部署和a服务器一样版本的gitlab,部署好环境后开始备份和数据迁移.

查看gitlab版本的命令:

 gitlab-rake gitlab:env:info

2. 备份原a服务器上的的数据

gitlab-rake gitlab:backup:create RAILS_ENV=production

PS: 备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名文件名如1592188481_2020_06_15_13.0.3_gitlab_backup.tar

这里要特别说明,如果在/etc/gitlab/gitlab.rb 文件配置了参数“backup_path”(例如gitlab_rails['backup_path'] = '/backup'),则备份的目录就是该目录下(/backup/),如果没有配置参数“backup_path”,则gitlab把备份文件生成到默认目录

/var/opt/gitlab/backups。



大意就是在gitlab.rb和gitlab-secrets.json文件中包含敏感数据,在备份中并没有包含这两个文件,需要手动保存一下,在恢复备份的时候会需要这两个文件(如果是在本机更新,则不备份这两个文件也没关系,如果是备份了在另一台机器安装gitlab并恢复数据,则需要在另一台机器覆盖这两个文件)。这两个文件放在/etc/gitlab目录下。

3. 将步骤2生成的tar文件拷贝到b服务器上相应的backups目录下

可以利用scp进行直接拷贝.

scp /var/opt/gitlab/backups/1592188481_2020_06_15_13.0.3_gitlab_backup.tar  username@desc_ip:/var/opt/gitlab/backups

PS: username为目的服务器的用户名,desc_ip目的服务器IP地址

4. 在b服务器恢复数据

gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=/var/opt/gitlab/backups/1592188481_2020_06_15_13.0.3

PS:注意恢复备份使用的文件名称,使用的是文件名中git前边的数据

1592188481_2020_06_15_13.0.3_gitlab_backup.tar ==> 1592188481_2020_06_15_13.0.3

开始恢复的时候会有个警告提示,手动输入'yes'继续操作就行

然后在遇到authorized_keys时,也手动输入'yes'继续操作就行

恢复后的界面

5. 通过脚本定时备份

写一个简单的脚本,加入到定时任务,以保证每天备份一次代码到异地。

写脚本之前,先创建一下对应的工作目录:

mkdir /backup
touch /backup/logfile.txt

脚本内容如下:

#!/bin/bash
Bakupdir=/var/opt/gitlab/backups/
Logfile=/backup/logfile.txt
Date=`date +%Y-%m-%d`
gitlab-rake gitlab:backup:create RAILS_ENV=production
if [ $? -eq 0 ];then
echo "$Date Backup Successful" >> $Logfile
else
echo "$Date Backup Failed" >> $Logfile
fi
cd $Bakupdir
scp *.tar backup@192.168.106.222:/home/backup/gitbak # 提前创建好目录,ssh免密登陆等
rm -rf *

然后将脚本加入定时任务,根据需求,定期执行即可!

6.出错解决

数据迁移到后检查登录gialab有时候会跳出500报错(Something went wrong on our end.)以及无法正常新建用户

查看日志:tail -f /var/log/gitlab/redis/current

Can’t save in background: fork: Cannot allocate memory

解决方案

修改/etc/sysctl.conf

加上vm.overcommit_memory = 1, Linux内核会根据参数vm.overcommit_memory参数的设置决定是否放行。

修改完执行sysctl -p

vm.overcommit_memory = 1,直接放行
vm.overcommit_memory = 0:则比较 此次请求分配的虚拟内存大小和系统当前空闲的物理内存加上swap,决定是否放行。
vm.overcommit_memory = 2:则会比较进程所有已分配的虚拟内存加上此次请求分配的虚拟内

Gitlab备份以及恢复的更多相关文章

  1. 转载:Gitlab备份和恢复操作记录

    转载:Gitlab备份和恢复操作记录 包含了备份和数据恢复的操作记录,实验可行 前面已经介绍了Gitlab环境部署记录,这里简单说下Gitlab的备份和恢复操作记录: 1)Gitlab的备份目录路径设 ...

  2. gitlab备份、恢复、升级

    1.备份 gitlab的备份很简单,只要使用命令: gitlab-rake gitlab:backup:create 即可将当前的数据库.代码全部备份到/var/opt/gitlab/backups ...

  3. gitlab备份及恢复

    gitlab备份步骤 https://blog.csdn.net/qq_31666147/article/details/79844107 gitlab版本  下载地址 https://mirrors ...

  4. Gitlab备份和恢复操作记录

    前面已经介绍了Gitlab环境部署记录,这里简单说下Gitlab的备份和恢复操作记录: 1)Gitlab的备份目录路径设置 [root@code-server ~]# vim /etc/gitlab/ ...

  5. Gitlab+Jenkins学习之路(四)之gitlab备份和恢复

    gitlab的备份和恢复 (1)创建备份目录,并授权 [root@linux-node1 ~]# mkdir /data/backups/gitlab -p [root@linux-node1 ~]# ...

  6. Gitlab备份和恢复操作

    参考:https://www.cnblogs.com/kevingrace/p/7821529.html 一,设置开启备份以及备份路径 /etc/gitlab/gitlab.rb gitlab_rai ...

  7. gitlab 备份和恢复

    前言 gitlab这个代码托管工具真是强大,很多东西都是做好了直接用的. 这里就包括备份和恢复功能. 正文 备份 我们可以直接运行此命令,来进行备份. sudo gitlab-rake gitlab: ...

  8. Gitlab 备份迁移恢复报错gtar: .: Cannot mkdir: No such file or directory

    1. 版本信息 OS: centos 6.9 Gitlab: gitlab-ce.10.7.4 gitlab-ce.10.8.0 gitlab-ce.10.8.3 gitlab-ce.10.8.4 2 ...

  9. gitlab备份和恢复

    备份 生产环境下,备份是必需的.需要备份的文件有:配置文件和数据文件. 备份配置文件 配置文件包含密码等敏感信息,不要和数据文件放在一起. sh -c 'umask 0077; tar -cf $(d ...

随机推荐

  1. k8s+crio+podman搭建集群

    前言 在传统的k8s集群中,我们都是使用docker engine做为底层的容器管理软件的,而docker engine因为不是k8s亲生的解决方案,所以实际使用中会有更多的分层.之前我们也讲过,k8 ...

  2. 'cross-env' 不是内部或外部命令

    yarn start yarn run v1.22.10$ cross-env APP_TYPE=site umi dev'cross-env' 不是内部或外部命令,也不是可运行的程序或批处理文件.e ...

  3. 如何用 身份证OCR 接口进行快速开发

    最近公司项目有一个身份证文字识别的小需求,想着如果用现成的API就可以大大提高开发效率,在网上的API商店搜索了一番,发现了 APISpace,它里面的身份证OCR非常符合我的开发需求.   身份证O ...

  4. Template -「平衡树」

    Fhq-Treap. // Fhq-Treap const int MAXN = 1e5 + 5; struct Fhq_Treap { #define Lson Tr[p].l #define Rs ...

  5. 多线程与高并发(一)—— 自顶向下理解Synchronized实现原理

    一. 什么是锁? 在多线程中,多个线程同时对某一个资源进行访问,容易出现数据不一致问题,为保证并发安全,通常会采取线程互斥的手段对线程进行访问限制,这个互斥的手段就可以称为锁.锁的本质是状态+指针,当 ...

  6. P2532 [AHOI2012]【一本通提高组合数学】树屋阶梯

    [AHOI2012]树屋阶梯 题目描述 输入格式 一个正整数N( 1 ≤ N ≤ 500 1\le N \le 500 1≤N≤500),表示阶梯的高度. 输出格式 一个正整数,表示搭建方法的个数.( ...

  7. vue2升级vue3:Vue Demij打通vue2与vue3壁垒,构建通用组件

    如果你的vue2代码之前是使用vue-class-component 类组件模式写的.选择可以使用 https://github.com/facing-dev/vue-facing-decorator ...

  8. SpringBoot使用CORS的addCorsMappings中会遇到的问题

    跨域需要后端需要设置响应的跨域头 如下 public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/ ...

  9. React报错之组件不能作为JSX组件使用

    正文从这开始~ 总览 组件不能作为JSX组件使用,出现该错误有多个原因: 返回JSX元素数组,而不是单个元素. 从组件中返回JSX元素或者null以外的任何值. 使用过时的React类型声明. 返回单 ...

  10. qbxt五一数学Day1

    目录 I. 基础知识 1. 带余除法(小学) 1. 定义 2. 性质 2. 最大公约数(gcd)/ 最小公倍数(lcm) 1. 定义 2. 性质 3. 高精度 II. 矩阵及其应用 1. 定义 2. ...