我们当前的备份流程是每晚进行SVN HOTCOPY,到另一台机器上的备份位置。 我可以以某种方式从该备份中恢复并保留所有修订历史记录吗? 或者我需要使用svn dump / load吗?
谢谢, Chandrajeet
答案 0 :(得分:26)
“svnadmin hotcopy”实际上将整个存储库复制到另一个位置。该副本与原始存储库无法区分,实际上可以用作存储库本身。因此,您应该能够将svnadmin hotcopy的结果复制回存储库位置,并拥有一个完全有效的,已恢复的存储库。
hotcopy相对于常规文件系统副本的优势在于它尊重Subversion的锁定机制。
答案 1 :(得分:7)
作为每日备份的一部分,您可能希望运行svnadmin verify <REPOSITORY>
您可以验证原始照片或热照片。
在从备份恢复之前一定要这样做。
答案 2 :(得分:1)
我会做更多,然后每晚只运行一次hotcopy。我会使用“svnadmin dump”来创建转储历史,转储文件可以恢复到工作存储库。
您应该将这些转储文件备份到磁带或异地磁盘,这是标准备份过程。如果损坏的存储库在被捕获之前的几天内持续存在(例如在周末或假日),则可以返回上一个好的文件。
答案 3 :(得分:1)
可能您想查看我对类似问题的回答: "Restore SVN backups from multiple files"
您还应该考虑恢复SVN工作复制的策略: 如果您只是恢复一个hotcopied(或转储)repo所有更高版本的工作副本将无效,开发人员必须再次检出。通常这需要更多的时间才能再次恢复正常而不是单独恢复回购。
转储问题是:创建和回放它们非常耗时。
此外,如果您使用钩子脚本,它们将包含在您的hotcopy中,但它们不会在您的转储中。
多数民众赞成说我会推荐hotcopy和per-commit dump的组合