【发布时间】:2010-10-01 11:32:56
【问题描述】:
我们当前的备份过程是每晚执行 SVN HOTCOPY,到另一台机器上的备份位置。 我可以以某种方式从该备份中恢复并保留所有修订历史记录吗? 还是我需要使用 svn dump/load?
谢谢, 钱德拉吉特
【问题讨论】:
我们当前的备份过程是每晚执行 SVN HOTCOPY,到另一台机器上的备份位置。 我可以以某种方式从该备份中恢复并保留所有修订历史记录吗? 还是我需要使用 svn dump/load?
谢谢, 钱德拉吉特
【问题讨论】:
“svnadmin hotcopy”实际上将整个存储库复制到另一个位置。该副本与原始存储库没有区别,实际上可以用作存储库本身。因此,您应该能够将 svnadmin hotcopy 的结果复制回您的存储库位置,并拥有一个完全有效且已恢复的存储库。
热拷贝相对于常规文件系统拷贝的优势在于它尊重 Subversion 的锁定机制。
【讨论】:
作为日常备份的一部分,您可能需要运行 svnadmin verify <REPOSITORY>
您可以验证原件或热拷贝。
在从备份恢复之前一定要这样做。
【讨论】:
我会做更多事,然后每天晚上简单地运行一个 hotcopy。我会使用“svnadmin dump”来创建转储文件的修订历史,可以将其恢复到工作存储库。
您应该按照标准备份程序将这些转储文件备份到磁带或异地磁盘。如果损坏的存储库在被捕获之前持续存在数天(例如在周末或假期),您可以返回到最后一个好的文件。
【讨论】:
也许你想看看我对类似问题的回答: "Restore SVN backups from multiple files"
您还应该考虑恢复 SVN 工作副本的策略: 如果您只是恢复一个热复制(或转储)的 repo,所有更高版本的工作副本都将无效,开发人员必须再次检查。通常,这比单独恢复 repo 需要更多的时间。
转储的问题是:它们的创建和回放非常耗时。
此外,如果您使用钩子脚本,它们将包含在您的热拷贝中,但它们不会包含在您的转储中。
也就是说我会推荐热拷贝和每次提交转储的组合
【讨论】: