我们在服务器上安装了GitLab CE 9.1.2
,计划每隔8:00 PM Mon-Fri
运行一次备份。到目前为止一切都很好,但昨天我们开始使用Wiki。我仔细检查了备份文件,并且它与前一天的备份大小完全相同(除了创建Wiki页面之外,系统中没有进行任何操作)。
因为我怀疑Wiki没有包含在备份过程中,所以我打开了一个VM并尝试恢复备份文件。成功的操作后,我去了项目的维基部分,它是空的。
我正在阅读一些资源,他们说回购不应该是空的,因为我们的回购中包含了代码,提交,分支机构,问题等等。我按照的备份说明进行操作。 Omnibus 安装,因为这就是我们所拥有的。
0 20 * * 1-5 /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
正如您所看到的,我没有包含任何SKIP
环境变量,所以它不应该跳过任何内容。我错过了什么吗?我正确地遵循了指示。请帮帮我,我需要系统的完整备份。
答案 0 :(得分:5)
从link @fedorqui提供,看起来这是一个问题,当您创建Wiki时缓存没有被刷新,因此备份过程将Wiki视为空,因此被跳过。
要解决此问题,我们手动必须自己刷新缓存。
sudo gitlab-rails console
p = Project.find_by_full_path 'namespace_path/project_path'
wiki = ProjectWiki.new p
wiki.repository.empty?
wiki.repository.expire_all_method_caches
wiki.repository.empty?
第一次运行wiki.repository.empty?
时,它将返回true
,这就是备份过程跳过Wiki的原因。运行wiki.repository.expire_all_method_caches
后你应该好好去(我试过这个,我们的Wiki现在正在备份)。如果您想确认一切看起来都不错,只需再次运行wiki.repository.empty?
,这次应该返回false
。
截至2017年6月5日,似乎该错误尚未修复。
已发布GitLab CE 9.5.0(changelog),该问题已解决此问题。如果您不想手动使缓存过期,我建议您将GitLab安装升级到至少v9.5.0并且您应该没问题。