13

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

谢谢,钱德拉吉

4

4 回答 4

27

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

与常规文件系统副本相比,热复制的优势在于它尊重 Subversion 的锁定机制。

于 2009-01-14T21:40:34.033 回答
8

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

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

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

于 2009-01-14T21:53:18.903 回答
1

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

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

于 2009-01-14T21:53:48.763 回答
1

可能你想看看我对类似问题的回答: “从多个文件中恢复 SVN 备份”

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

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

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

那就是说我会推荐 hotcopy 和 per-commit 转储的组合

于 2009-01-22T17:18:28.477 回答