===============================================

2017/10/20_第1次修改                       ccb_warlock

===============================================

 部署:http://www.cnblogs.com/straycats/p/7637373.html

升级:http://www.cnblogs.com/straycats/p/7707359.html

 本地备份:http://www.cnblogs.com/straycats/p/7671204.html

 远程备份:http://www.cnblogs.com/straycats/p/7672692.html

通过之前的记录,已经掌握了gitlab的本地备份(http://www.cnblogs.com/straycats/p/7671204.html)和远程备份(http://www.cnblogs.com/straycats/p/7672692.html)。

但是获取备份文件不是我们的目的,最终是为了通过备份文件实现迁移或恢复gitlab。本篇就是记录如何通过备份文件在新的环境上去恢复/迁移gitlab。


一、环境准备

首先在新服务器(192.168.2.1)上搭建gitlab,部署过程可以参考http://www.cnblogs.com/straycats/p/7637373.html

注意:通过备份文件恢复gitlab必须保证新的gitlab版本必须要和老的gitlab版本一致,否则会提示版本不匹配。

所以无非是两种思路,一种将老的gitlab先升级到你要的gitlab版本,再迁移备份;另一种将gitlab安装的版本和老gitlab一致,迁移完成后再进行升级。

我采取先保持一致后迁移,再进行升级。


二、配置新的gitlab

gitlab的配置文件(gitlab.rb)是不因备份恢复而恢复的,故要将老的gitlab的配置文件也取过来,否则就需要维护人员重新配置。

2.1 获取gitlab.rb

在新服务器上,使用scp命令将老服务器(192.168.1.1)的备份文件复制到/etc/gitlab/目录下。

scp root@192.168.1.1:/etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb

第一次连接时会询问是否要继续连接,输入yes,回车。

接着输入老服务器的root密码后,回车。

接着就会看到备份文件传输的信息。

2.2 修改external_url

如果新gitlab服务器部署之后ip不改回老的ip(示例为192.168.1.1),故需要修改gitlab.rb的external_url参数,因为页面上项目的http地址就是根据该参数拼接而成的。

以新gitlab服务器的ip为192.168.2.1为例,修改gitlab配置文件。

vim /etc/gitlab/gitlab.rb

修改external_url,wq保存。

external_url 'http://192.168.2.1'

2.3 重新配置gitlab 

gitlab-ctl reconfigure

 


三、获取备份文件

在新服务器上,使用scp命令将老服务器(192.168.1.1)的备份文件(1508412719_2017_10_19_10.0.2_gitlab_backup.tar)复制到/var/opt/gitlab/backups/目录下。

scp root@192.168.1.1:/var/opt/gitlab/backups/1508412719_2017_10_19_10.0.2_gitlab_backup.tar /var/opt/gitlab/backups/

获取到/var/opt/gitlab/backups/目录下是因为我没有特别更换gitlab的备份目录,如果gitlab.rb有指定别的目录,根据实际情况自行修改。

第一次连接时会询问是否要继续连接,输入yes,回车。

接着输入老服务器的root密码后,回车。

接着就会看到备份文件传输的信息。

如果老服务器出现故障时,云端有备份文件可以从云端获取,比如云端192.168.1.2的/gitlab-backup目录下有备份文件,可以从那获取。

scp root@192.168.1.2:/gitlab-backup/1508412719_2017_10_19_10.0.2_gitlab_backup.tar /var/opt/gitlab/backups/

 


四、恢复/迁移gitlab数据

 4.1 修改备份文件权限

将备份文件的权限改为777,否则恢复的时候会出现权限不够导致解压失败的问题。

chmod 777 /var/opt/gitlab/backups/1508412719_2017_10_19_10.0.2_gitlab_backup.tar

 4.2 停止相关数据连接服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

 4.3 恢复gitlab

使用“gitlab-rake gitlab:backup:restore BACKUP=备份文件编号”指令可以根据备份文件来恢复,因为示例中是使用1508412719_2017_10_19_10.0.2_gitlab_backup.tar来恢复,故备份文件编号为1508412719_2017_10_19_10.0.2。

gitlab-rake gitlab:backup:restore BACKUP=1508412719_2017_10_19_10.0.2

等待片刻后,由于新的gitlab还是处于初始状态,直接输入“yes”,回车。

然后就是等待恢复的结束。

到了下面的内容时,输入“yes”,回车。

 4.4 启动gitlab 

gitlab-ctl start

 


五、关于本地备份和远程备份

由于这两块是额外配置的,如果新环境中也要有这一套备份机制,自然需要维护人员手动配一次。

本地备份参考:http://www.cnblogs.com/straycats/p/7671204.html

远程备份参考:http://www.cnblogs.com/straycats/p/7672692.html

参考资料:

1. http://blog.csdn.net/ouyang_peng/article/details/77070977

通过 备份文件 恢复/迁移 gitlab的更多相关文章

  1. RDS for MySQL 逻辑备份文件恢复到自建数据库

    使用MySQL自带的 mysqldump 工具可以通过逻辑备份文件恢复数据库,本文将介绍详细的逻辑备份恢复数据库操作步骤. 说明 通过物理备份文件恢复到自建数据库请参见RDS for MySQL 物理 ...

  2. 使用MySQL的mysqldump命令备份数据库和把数据库备份文件恢复

    1,备份数据库 mysql -uroot -p123456 db_name > /root/db_name.dump 2,数据库备份文件恢复 mysql -uroot -p123456 db_n ...

  3. CentOS6.5 安装gitlab以及gitolite迁移gitlab

    CentOS6.5 安装gitlab以及gitolite迁移gitlab gitlab 的安装使用以及数据结构 安装 环境: CentOS6.5 基于 nignx + unicorn 搭建的应用环境, ...

  4. Docker 镜像的备份恢复迁移

    在大家已经学会了如何构建镜像以后,为了备份该镜像,我们有以下几个选择: 我们可以将指定镜像保存成 tar 归档文件,需要使用时将 tar 包恢复为镜像即可: 登录 DockerHub 注册中心,将镜像 ...

  5. svn迁移gitlab,构建前端打包发布流程

    前端资源迁移     目前公司的前端资源托管在svn服务器上,由于团队的逐渐扩大,svn的分支管控越来越不灵活,而且对于以后前端流程一体化的处理支持不是很好,因此决定在版本控制上转向git.git的好 ...

  6. 如何将阿里云mysql RDS备份文件恢复到自建数据库

    参考地址:https://help.aliyun.com/knowledge_detail/41817.html PS:目前恢复只支持 Linux 下进行.Linux下恢复的数据文件,无论 Windo ...

  7. 阿里云 RDS for MySQL 物理备份文件恢复到自建数据库

    想把阿里云的Mysql 生成的RAS 文件.tar文件 恢复到本地自建mysql, 遇到的坑.希望帮助大家 阿里云提供的地址 https://help.aliyun.com/knowledge_det ...

  8. 云计算之路-阿里云-分享:通过RDS备份文件恢复SQL Server数据库

    应用场景:假如您用了阿里云的SQL Server RDS,想在另外一台服务器上通过备份文件还原数据库至之前的某个时间点. 准备工作:准备1台用于还原的服务器,安装好SQL Server(2008或20 ...

  9. 阿里云RDS数据库备份文件恢复到本地mysql数据库

    一.安装mysql和xtrabackup  (1)安装mysql 因为RDS是5.6版本,所以我们本地的mysql数据库要与RDS版本对应. rpm -ivh http://repo.mysql.co ...

随机推荐

  1. SVN服务器

    什么是SVN服务器? 1.协助多人开发的代码管理器: 2.会记录代码是谁写的,并且可以回退到任意版本: 3.冲突解决: 4.升级(项目分支). SVN的搭建: 1.在服务器端下载SVN服务器,一个项目 ...

  2. dedecms注入漏洞

    版本:Powered by DedeCMSV57_GBK © 2004-2011 DesDev Inc. 漏洞利用EXP:plus/recommend.php?action=&aid=1&am ...

  3. VC++下编译 程序“减肥”

    在vc6 和 vs 2008下 编译 以下代码,不更改任何编译设置(vc6  40k , s2008 7k). 一.vc6下,Release 模式 编译处理. 1.去掉不必要的 链接库  工程(Pro ...

  4. OCPC(Optimized Cost per Click)机制

    背景 在线广告中,广告按照CPM排序,排在前面的广告竞争有限广告位(截断).其中,CPM=bid*pctr.注GSP二价计费的,按照下一位bid计费.适当调整bid,可以提高竞价的排名,从而获得展现的 ...

  5. 51Nod 1084 矩阵取数问题 V2 双线程DP 滚动数组优化

    基准时间限制:2 秒 空间限制:131072 KB  一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上.第1遍时只能向下和向右走,第2遍时只能向 ...

  6. ERROR: unable to bind listening socket for address ’127

    ERROR: unable to bind listening socket for address '127.0.0.1:9000′ 解决办法: killall php-fpm 然后重启即可. 我的 ...

  7. javassist:字节码编辑器工具

    简介: javassist是一款可以在运行时生成字节码的工具,可以通过它来构造一个新的class对象.method对象,这个class是运行时生成的.可以通过简短的几行代码就可以生成一个新的class ...

  8. PTA题---求两个有序序列中位数所体现的思想。

    ---恢复内容开始--- 近日,在做PTA题目时,遇到了一个这样的题,困扰了很久.题目如下:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A​0​​,A​1​​, ...

  9. window.open()被拦截问题

    最近做项目的时候遇到一个需求,在商品详情页面中点击购买按钮,之后再新标签页中打开生成的订单页面,所以想用window.open()来实现.但是测试的时候发现打开的链接被浏览器拦截. 之后,开始在网上查 ...

  10. 自动化运维工具——puppet详解(二)

    一.class 类 1)什么是类? 类是puppet中命名的代码模块,常用于定义一组通用目标的资源,可在puppet全局调用: 类可以被继承,也可以包含子类: 具体定义的语法如下: class NAM ...