
1.Gitlab建立备份
#gitlab-rake gitlab:backup:create以上指令将在/var/opt/gitlab/backups文件目录下创建一个名为1393513186_Gitlab_backup.tar的压缩包。这个压缩包是所有gitlab的详细部分,其中第一个1393513186是备份创建的日期。
2.Gitlab修复
# 终止有关数据信息联接服务项目 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq # 从1393513186序号备份中修复 gitlab-rake gitlab:backup:restore BACKUP=1393513186 # 起动Gitlab sudo gitlab-ctl start3.Gitlab传输
就好像转移备份的过程和修复是一样的,你只需要把备份文档从旧网络服务器的/var/opt/gitlab/backups的文件目录下复制到新网络服务器的/var/opt/gitlab/backups(如果你没有改变默认的备份文件目录的话)。但必须注意的是,新网络服务器上Gitlab的版本号必须与备份建立时Gitlab的版本信息相同。比如,如果新的网络服务器安装了全新版本号的Gitlab8.5,那么最好在转移之前将旧网络服务器的Gitlab升级到8.5。
4.自动备份
根据crontab应用程序备份说明完成自动备份:
sudo su - crontab -e例如,添加以下内容以在每天凌晨2:00完成自动备份:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create4.常见问题
①添加此项是因为Gitlab所属的KVM的服务器在自动备份后宕机了好几天。根据cron的任务计划模拟,发现第一次gitlab备份的全过程就是备份大量的文件(db,repo等。)首先,然后根据这些文件将它们合并成一个备份压缩包,最后删除文件夹,只留下一个备份压缩包。这相当于先备份两倍压缩包,导致硬盘满。整个修复过程都是一样的。
②
Unpacking backup ... tar: 1479265387_gitlab_backup.tar: Cannot open: Permission denied tar: Error is not recoverable: exiting now unpacking backup failed传输的备份文件权限不足,可以给予足够的管理权限,然后修复。
③在整个维修过程中,遇到了一个错误:
Started GET "/EagleEye/BMH.EagleEye" for 127.0.0.1 at 2016-10-25 10:54:32 0800 Processing by ProjectsController#show as HTML Parameters: {"namespace_id"=>"EagleEye", "id"=>"BMH.EagleEye"} Completed 500 Internal Server Error in 215ms (ActiveRecord: 19.5ms) OpenSSL::Cipher::CipherError (bad decrypt): app/models/project.rb:383:in `import_url' app/models/project.rb:413:in `external_import?' app/models/project.rb:405:in `import?' app/models/project.rb:421:in `import_in_progress?' app/controllers/projects_controller.rb:93:in `show' lib/gitlab/middleware/go.rb:16:in `call'软件是centos6.2,8.8.5把gitlab转移到另一个网络服务器上。其他所有网页都可以正常显示信息,但是点击一个新项目会显示信息500。查看/var/log/gitlab/gitlab-rails/production.log的日志,发现语句不正确。
根据检索,这是gitlab数据备份和传输的一个缺点。解决方案:
1.将原gitlab的db_key_base覆盖到新gitlab上。
Db_key_base位于/etc/gitlab/gitlab-secrets.JSON。
2.EE版本号是
sudogitlab-railsrunner"project.where(mirror:false)。where.not(import_URL:nil)。each{|p|p.import_data.destroyifp.import_data}"
CE的版本号是
sudogitlab-railsrunner"project.where.not(import_URL:nil)。each{|p|p.import_data.destroyifp.import_data}"
重启gitlab发现500错误看不到了,新项目可以浏览。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)