二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 最佳实践

  • 迎刃而解

  • Nginx

  • Php

  • Zabbix

  • AWS

  • Prometheus

  • Grafana

  • Loki

  • CentOS

  • Supervisord

  • Systemd

  • Docker

  • Docker-Compose

  • Rancher

  • Ansible

  • OpenLdap

  • GitLab

    • Gitlab简单部署
    • Gitlab备份以及恢复
      • 1. 迁移准备工作和思路:
      • 2. 备份原 a 服务器上的的数据
      • 3. 将步骤 2 生成的 tar 文件拷贝到 b 服务器上相应的 backups 目录下
      • 4. 在 b 服务器恢复数据
      • 5. 通过脚本定时备份
      • 6. 出错解决
    • 配置Gitlab提交代码的钉钉通知
    • 汉化Gitlab-10-1-0
    • 如何迁移一个仓库到新的Gitlab
    • Gitlab忘记root密码怎么办
    • 通过命令行git log获取各种提交信息
    • 使用curl批量在分组内创建项目
    • git更改前一次commit内容并提交到master
    • git配置github与gitlab推送时指定不同用户与邮箱
  • GitHub

  • Etcd

  • Consul

  • RabbitMQ

  • Kafka

  • Mysql

  • MongoDB

  • OpenVPN

  • Kvm

  • VMware

  • 配置文件详解

  • Other

  • 运维观止
  • GitLab
二丫讲梵
2018-04-04
目录

Gitlab备份以及恢复

文章发布较早,内容可能过时,阅读注意甄别。

公司更换了新的服务器, 需要把原先的 gitlab 迁移到新的服务器上。

# 1. 迁移准备工作和思路:

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

查看 gitlab 版本的命令:

 gitlab-rake gitlab:env:info
1

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

gitlab-rake gitlab:backup:create RAILS_ENV=production
1

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

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

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

scp username@src_ip:/var/opt/gitlab/backups/1481529483_gitlab_backup.tar /var/opt/gitlab/backups
1

PS: username 为原服务器的用户名,src_ip 原服务器 IP 地址

# 4. 在 b 服务器恢复数据

gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=/var/opt/gitlab/backups/1511876879_2017_11_28_10.1.0
1

image

PS:BACKUP 的时间点必须与原服务器备份后的文件名一致

PPS:一般备份出来的名字是这样的,命令使用格式是 git 前边的数据就行

image

OK,恢复成功!

# 5. 通过脚本定时备份

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

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

$ mkdir /backup
$ touch /backup/logfile.txt
1
2

脚本内容如下:

#!/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
rm -rf *
1
2
3
4
5
6
7
8
9
10
11
12
13

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

# 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
1
2

解决方案

修改 / 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:则会比较进程所有已分配的虚拟内存加上此次请求分配的虚拟内
1
2
3

参考网址:http://wenva.github.io/git/2016/04/22/Gitlab%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%81%E7%A7%BB.html

微信 支付宝
#gitlab
上次更新: 2024/07/04, 22:40:37
Gitlab简单部署
配置Gitlab提交代码的钉钉通知

← Gitlab简单部署 配置Gitlab提交代码的钉钉通知→

最近更新
01
记录二五年五一之短暂回归家庭
05-09
02
学习周刊-总第210期-2025年第19周
05-09
03
学习周刊-总第209期-2025年第18周
05-03
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式