• Gitlab数据备份与恢复


    Gitlab备份与恢复:

    修改gitlab配置文件:
    vim /etc/gitlab/gitlab.rb

    #指定备份后数据存放的路径、权限、时间配置
    gitlab_rails['manage_backup_path'] = true                  #292行      开启备份功能
    gitlab_rails['backup_path'] = "/opt/gitlab_backup"         #293行      指定备份的路径
    gitlab_rails['backup_archive_permissions'] = 0644          #296行      备份文件的权限
    gitlab_rails['backup_keep_time'] = 7776000                 #301行      备份保留时间(保留90天)
     

    创建备份目录并授权:
    mkdir /opt/gitlab_backup && chown -R git.git /opt/gitlab_backup/

    重新生效gitlab配置:
    gitlab-ctl reconfigure


    手动备份:
    gitlab-rake gitlab:backup:create

    查看备份:
    ll -sh /opt/gitlab_backup/

    编写备份脚本,结合crontab实施自动定时备份,比如每天0点、6点、12点、18点各备份一次

    编写备份脚本:

    cat /opt/gitlab_backup/git_back.sh
    
    #!/usr/bin/bash
    /usr/bin/gitlab-rake gitlab:backup:create CRON=1
     

    chmod +x /opt/gitlab_backup/git_back.sh

    注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出

    加入定时任务:

    crontab -l
    
    0 0,6,12,18 * * * /bin/bash /opt/gitlab_backup/git_back.sh > /dev/null 2>&1
     

    删除测试项目:


    GItlab只能还原到与备份文件相同的gitlab版本。

    在上面gitlab备份之前创建了opstands项目,然后不小心误删了opstands项目,现在就进行gitlab恢复操作

    关闭数据库连接服务:
    gitlab-ctl stop unicorn && gitlab-ctl stop sidekiq

    gitlab-ctl status
    run: gitaly: (pid 38652) 472s; run: log: (pid 693) 15213s
    run: gitlab-monitor: (pid 38662) 472s; run: log: (pid 692) 15213s
    run: gitlab-workhorse: (pid 38665) 471s; run: log: (pid 694) 15213s
    run: logrotate: (pid 38673) 471s; run: log: (pid 691) 15213s
    run: nginx: (pid 38689) 470s; run: log: (pid 690) 15213s
    run: node-exporter: (pid 38695) 470s; run: log: (pid 685) 15214s
    run: postgres-exporter: (pid 38702) 470s; run: log: (pid 679) 15214s
    run: postgresql: (pid 38707) 469s; run: log: (pid 678) 15214s
    run: prometheus: (pid 38715) 469s; run: log: (pid 676) 15214s
    run: redis: (pid 38721) 468s; run: log: (pid 680) 15214s
    run: redis-exporter: (pid 38728) 468s; run: log: (pid 674) 15214s
    down: sidekiq: 43s, normally up; run: log: (pid 682) 15214s
    down: unicorn: 48s, normally up; run: log: (pid 688) 15213s
     

    现在通过之前的备份文件进行恢复(必须要备份文件放到备份路径下,这里备份路径我自定义的/opt/gitlab_backup,默认的是/var/opt/gitlab/backups

    恢复数据:

    Gitlab的恢复操作会先将当前所有的数据清空,然后再根据备份数据进行恢复.

    在指定备份文件恢复时,gitlab会自动补全后面的文件名,注意。

    cd /opt/gitlab_backup
    gitlab-rake gitlab:backup:restore BACKUP=1553965778_2019_03_31_10.7.3       ---#文件名会自动补全-(注意)
     

    从web界面查看项目是否恢复:

  • 相关阅读:
    使用proguard导出项目时 报错
    一个有关canvas的Bug
    一点小想法
    C#调用非托管代码(转)
    对3DES加密的运用的一个简单示例(转)
    使用X.509数字证书加密解密实务(二) 使用RSA证书加密敏感数据(转)
    dtree用法(转)
    使用X.509数字证书加密解密实务(一) 证书的获得和管理(转)
    Oracle SQL Loader的详细语法(转)
    使用X.509数字证书加密解密实务(三) 使用RSA证书结合对称加密技术加密长数据(转)
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/13233737.html
Copyright © 2020-2023  润新知