zoukankan      html  css  js  c++  java
  • 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界面查看项目是否恢复:

  • 相关阅读:
    LeetCode Path Sum II
    LeetCode Longest Palindromic Substring
    LeetCode Populating Next Right Pointers in Each Node II
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Binary Tree Maximum Path Sum
    LeetCode Find Peak Element
    LeetCode Maximum Product Subarray
    LeetCode Intersection of Two Linked Lists
    一天一个设计模式(1)——工厂模式
    PHP迭代器 Iterator
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/13233737.html
Copyright © 2011-2022 走看看