【问题标题】:How to recover from svn hotcopy backups如何从 svn hotcopy 备份中恢复
【发布时间】:2010-10-01 11:32:56
【问题描述】:

我们当前的备份过程是每晚执行 SVN HOTCOPY,到另一台机器上的备份位置。 我可以以某种方式从该备份中恢复并保留所有修订历史记录吗? 还是我需要使用 svn dump/load?

谢谢, 钱德拉吉特

【问题讨论】:

标签: svn recovery


【解决方案1】:

“svnadmin hotcopy”实际上将整个存储库复制到另一个位置。该副本与原始存储库没有区别,实际上可以用作存储库本身。因此,您应该能够将 svnadmin hotcopy 的结果复制回您的存储库位置,并拥有一个完全有效且已恢复的存储库。

热拷贝相对于常规文件系统拷贝的优势在于它尊重 Subversion 的锁定机制。

【讨论】:

  • 感谢您的回复。如果损坏的存储库通过备份位置的干净存储库进行备份,我会担心这种情况。虽然我从周一到周五进行循环备份,但我担心上述情况。 svnadmin 恢复有什么用?由于我的存储库位于 fsfs 系统上,我猜“svnadmin recover”没有用。问候,
  • svnadmin recover 将从 Subversion 1.5 开始的 fsfs 中的一些错误中恢复。但是,我仍然建议将定期快照保存在更永久的备份介质上。
【解决方案2】:

作为日常备份的一部分,您可能需要运行 svnadmin verify <REPOSITORY>

您可以验证原件或热拷贝。

在从备份恢复之前一定要这样做。

【讨论】:

    【解决方案3】:

    我会做更多事,然后每天晚上简单地运行一个 hotcopy。我会使用“svnadmin dump”来创建转储文件的修订历史,可以将其恢复到工作存储库。

    您应该按照标准备份程序将这些转储文件备份到磁带或异地磁盘。如果损坏的存储库在被捕获之前持续存在数天(例如在周末或假期),您可以返回到最后一个好的文件。

    【讨论】:

    • 为什么这个“更多”然后是热拷贝?它不会包含钩子或其他非提交数据,并且热复制将包含转储文件中的所有内容?
    【解决方案4】:

    也许你想看看我对类似问题的回答: "Restore SVN backups from multiple files"

    您还应该考虑恢复 SVN 工作副本的策略: 如果您只是恢复一个热复制(或转储)的 repo,所有更高版本的工作副本都将无效,开发人员必须再次检查。通常,这比单独恢复 repo 需要更多的时间。

    转储的问题是:它们的创建和回放非常耗时。

    此外,如果您使用钩子脚本,它们将包含在您的热拷贝中,但它们不会包含在您的转储中。

    也就是说我会推荐热拷贝和每次提交转储的组合

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多