zoukankan      html  css  js  c++  java
  • gitlab 备份与恢复

    版本环境:

    [root@localhost gitlab]# cat /etc/redhat-release 
    CentOS Linux release 7.3.1611 (Core) 
    
    [root@localhost gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
    8.15.4

    一、数据备份

    先打开/etc/gitlab/gitlab.rb配置文件,查看一个和备份相关的配置项:

    gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

    该项定义了默认备份出文件的路径,可以通过修改该配置,并执行 gitlab-ctl reconfigure 或者 gitlab-ctl  restart 重启服务生效。备份执行一条命令就搞定:/opt/gitlab/bin/gitlab-rake gitlab:backup:create ,也可以加到crontab中定时执行:

    0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

    可以到/var/opt/gitlab/backups找到备份包,解压查看,会发现备份的还是比较全面的,数据库、repositories、build、upload等分类还是比较清晰的。

     

    每天执行备份,肯定有目录被爆满的风险,我们可以立马想到的可以通过find 查找一定的时间前的文件,配合rm进行删除。不过不需要这么麻烦,gitlab-ce自身集成的有自动删除配置。同样打开/etc/gitlab/gitlab.rb配置文件,可以找到如下配置:

    gitlab_rails['backup_keep_time'] = 604800

    这里是设置备份保留7天(7*3600*24=604800),秒为单位,如果想增大或减小,可以直接在该处配置,并通过gitlab-ctl restart 重启服务生效。

     

    备份完成,会在备份目录中生成一个当天日期的tar包。

    二、数据恢复

    1.安装gitlab

    安装包下载:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

    官网地址:http://www.shcsinfo.com/china/gitlabeedownload.html

    上传到服务器,yum安装即可

    yum -y localinstall gitlab-ce-8.15.4-ce.0.el7.x86_64.rpm

    初始化,就执行一次

    gitlab-ctl reconfigure

    启动

    gitlab-ctl status/stop/start

    通过本机IP访问页面,设置初始密码,其他操作类似GitHUB。

    2.恢复gitlab

    恢复前需要先停掉数据连接服务:

    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq

     

    如果是台空主机,没有任何操作,理论上不停这两个服务也可以。停这两个服务是为了保证数据一致性。如果你没修改过默认备份目录的话,将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups

    [root@localhost gitlab]# rsync -avz 1530773117_2018_07_05_gitlab_backup.tar 10.0.3.111:/var/opt/gitlab/backups/

     

     

    600权限是无权恢复的。 --- 这里改成了777

    [root@yunwei-test backups]# pwd
    /var/opt/gitlab/backups
    [root@yunwei-test backups]# chmod 777 1530773117_2018_07_05_gitlab_backup.tar 
    [root@yunwei-test backups]# ll
    total 17328900
    -rwxrwxrwx 1 git git 17744793600 Jul  5 14:47 1530773117_2018_07_05_gitlab_backup.tar

     

    执行下面的命令进行恢复:后面再输入两次yes就完成恢复了。

    gitlab-rake gitlab:backup:restore BACKUP=1530773117_2018_07_05_gitlab_backup.tar

     

    PS:根据版本不同恢复时可能有点小区别

    [root@localhost backups]# gitlab-rake gitlab:backup:restore BACKUP=1537974886_2018_09_26_10.8.7
    或者
    [root@localhost backups]# gitlab-rake gitlab:backup:restore BACKUP=1537974886

     

     

     

    恢复完成后,启动刚刚的两个服务,或者重启所有服务,再打开浏览器进行访问,发现数据和之前的一致:

    gitlab-ctl start unicorn
    gitlab-ctl start sidekiq
    或
    gitlab-ctl restart

     

    注意:通过备份文件恢复gitlab必须保证两台主机的gitlab版本一致,否则会提示版本不匹配。

     

     

     

    遇到的报错:数据量太大了,磁盘空间不足,打包报错。

  • 相关阅读:
    tyvj 1031 热浪 最短路
    【bzoj2005】 [Noi2010]能量采集 数学结论(gcd)
    hdu 1394 Minimum Inversion Number 逆序数/树状数组
    HDU 1698 just a hook 线段树,区间定值,求和
    ZeptoLab Code Rush 2015 C. Om Nom and Candies 暴力
    ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
    ZeptoLab Code Rush 2015 A. King of Thieves 暴力
    hdoj 5199 Gunner map
    hdoj 5198 Strange Class 水题
    vijos 1659 河蟹王国 线段树区间加、区间查询最大值
  • 原文地址:https://www.cnblogs.com/root0/p/9268866.html
Copyright © 2011-2022 走看看