zoukankan      html  css  js  c++  java
  • Gitlab 备份迁移恢复报错gtar: .: Cannot mkdir: No such file or directory

    1. 版本信息

    OS: centos 6.9 
    Gitlab: gitlab-ce.10.7.4 gitlab-ce.10.8.0 gitlab-ce.10.8.3 gitlab-ce.10.8.4
    

    2. 数据备份

     https://segmentfault.com/a/1190000014729115
     参考以上url 即可完成数据备份。
    

    3. Gitlab数据还原

     https://segmentfault.com/a/1190000014729115
     参考以上url 即可完成数据备份还原。
    

    4.Gitlab数据还原失败

    原因:gitlab版本restore存在bug,目录权限问题导致还原失败。
    issue:https://gitlab.com/gitlab-org/gitlab-ce/issues/46891
    
    first:
    #scp 1528963129_2018_06_14_10.8.4_gitlab_backup.tar 192.168.99.115:`pwd`
    #chown git.git /var/opt/gitlab/backups/*.tar
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    gitlab-rake gitlab:backup:restore
    
    **错误提示:**
    [DONE]
    done
    Restoring uploads ...
    tar: .: Cannot mkdir: No such file or directory
    tar: Exiting with failure status due to previous errors
    Backup failed
    
    各位看官,看到该提示是不是超蛋疼,大脑飘过十万个草泥马!别急,能解决的,咱可以手动;
    

    5. Gitlab的备份过程

    Dumping database ... 
    Dumping PostgreSQL database gitlab hq_production ... [DONE]
    done
    Dumping repositories ...
     * arch/k-calc ... [DONE]
     * arch/sms ... [DONE]
     * 
    done
    Dumping uploads ... 
    done
    Dumping builds ... 
    done
    Dumping artifacts ... 
    done
    Dumping pages ... 
    done
    Dumping lfs objects ... 
    done
    Dumping container registry images ... 
    [DISABLED]
    Creating backup archive: 1528963129_2018_06_14_10.8.4_gitlab_backup.tar         
    ... done
    Uploading backup archive to remote storage  ... skipped
    Deleting tmp directories ... done
    done
    done
    done
    done
    
    其实就是使用tar打包过程,db 和 repositories 除外!! 
    
    各位看官,说到这里是不是想起来点什么,继续往下看哦 !!!
    

    6.数据还原过程

    Unpacking backup ... done
    Before restoring the database, we will remove all existing
    tables to avoid future upgrade problems. Be aware that if you have
    custom tables in the GitLab database these tables and all data will be
    removed.
    
    Do you want to continue (yes/no)? yes
    Removing all tables. Press `Ctrl-C` within 5 seconds to abort
    Cleaning the database ... 
    done
    Restoring database ... 
    Restoring PostgreSQL database gitlabhq_production ... SET
    SET
    SET
     set_config 
    GRANT
    [DONE]
    done
    Restoring repositories ...
     * arch/k-calc ... [DONE]
     * arch/sms ... [DONE]
    Put GitLab hooks in repositories dirs [DONE]
    done
    Restoring uploads ... 
    ....
    

    7.解决数据还原

     
    #cd /var/opt/gitlab/backups
    #ls 
    1528963129_2018_06_14_10.8.4_gitlab_backup.tar  backup_information.yml  db                      
    pages.tar.gz  tmp artifacts.tar.gz builds.tar.gz lfs.tar.gz  repositories      
    uploads.tar.gz
    
    restore handy:
    #tar xf uploads.tar.gz -C /var/opt/gitlab/gitlab-rails/uploads
    #tar xf builds.tar.gz -C /var/opt/gitlab/gitlab-ci/builds
    #tar xf pages.tar.gz -C /var/opt/gitlab/gitlab-rails/shared/pages
    #tar xf artifacts.tar.gz -C /var/opt/gitlab/gitlab-rails/shared/artifacts
    ***************************以下是我自己搭建的gitlab(版本号:11.6.5)上遇到问题*********************************

    但是检查以上4个目录,和原版本没有区别,已经恢复成功了,但是报错(难道这又是官方bug),既然已经成功恢复了,那就先不管了
    看到这里是不是欣喜若狂,毕竟Gitlab是基础服务,程序员的结晶之地啊!!! 注意: db、repositories 的数据已经还原,了解本质过程很重要的,万物皆有相克!!! 如果数据还原没有提到的,请自行脑补啊,不在多做累述!!! #以下命令对还原数据可靠性检测 #gitlab-ctl reconfigure #gitlab-ctl restart #gitlab-rake gitlab:check SANITIZE=true

  • 相关阅读:
    python+django+uwsgi 搭建环境
    python系列-3 pyenv的使用
    生产消费者队列(TaskCompletionSource)的应用
    socket
    Redis 参考
    webform调用windows服务
    文件编码格式获取
    webform版部分视图与请求拦截
    asp.net 自定义节配置 (configSections下的section)
    组合配置草稿
  • 原文地址:https://www.cnblogs.com/Yongzhouunknown/p/10298556.html
Copyright © 2011-2022 走看看