进行 Subversion 备份的最佳方法是什么(在基于 Debian 的服务器上)。
是使用svnadmin吗?
svnadmin dump /path/to/reponame > reponame.dump
或者也许只是为了 tar 存储库所在的目录?
tar -cvzf svn.backup.tar.gz /var/subversion/
以上各有什么优缺点?
谢谢约翰
更新:这是一个只有少数 repos 的小型服务器。所以可能不需要增量备份,我认为最好专注于保持简单。
更新:我使用 packs 包装脚本(又是 svn-hot-backup 的包装)进行完整备份,然后在另一台干净的计算机上进行完整恢复。但是我删除了“SVN_HOTBACKUP_NUM_BACKUPS=10”部分,因为它不适合我。
请注意,我觉得这很简单,结果非常接近于 tar 目录。但是正如 Manni 在这里指出的那样,使用 svn-hot-backup/"svnadmin hotcopy" 是一种更可靠的方法,因为如果你不走运,tar 可能会不时创建损坏的备份。
寻找 svn-hot-backup 脚本。它应该附带颠覆,并包含执行您想要的所有逻辑,以及自动推出旧备份。我编写了以下包装脚本,它使用 svn-hot-backup 作为夜间 cronjob 运行,以备份具有多个存储库的单个服务器,稍作修改以进行通用化。
你看过这方面的文档吗?
基本上,您有两种选择:
svnadmin dump
svnadmin hotcopy
简单地制作目录的副本不是一种选择,因为在制作副本时您的存储库可能会更改。
您是进行增量备份还是完全备份取决于您的偏执程度、存储库的大小、您的需求和基础架构。
我推荐SVNBackup是因为它能够进行增量备份。
为什么这很重要?好吧,如果你有一个庞大的开发团队,并且每天都有 Subversion 备份,而你的系统在旧备份 12 小时后出现故障,那么一整天的工作都会丢失。
如果您每天多次进行完整备份( SVN hotcopy就是这样),则会对存储库机器造成不必要的负载,这会激怒不耐烦的开发人员。
作为奖励;我还推荐Backup-PC作为备份解决方案。如果您在不同系统上备份相同的文件,它可以进行增量远程备份并且能够节省大量空间。
我使用 svnsync 备份到一个只读存储库,该存储库本身备份有旧副本(日、周、月)
如果您愿意,您可以使用svnadmin进行增量备份,您应该在制作 tar 存档之前运行hot-backup.py 。
这是一篇关于备份 svn repos 的文章。无论如何,如前所述,阅读SVN 书是一个很好的起点。
我用普通的旧 rsync 备份了几个 100GB+ svn 存储库。
svnadmin dump
并且svnadmin hotcopy
在这些存储库上需要几天时间。要注意的另一件事是
svnadmin dump
不备份锁和挂钩脚本。这是我对存储库所做的:使用像 Dropbox 这样的文件夹备份服务(这里是他们的 Linux 版本的链接)。您只需将 Dropbox 设置为存储库的根目录(甚至位于它之上),每次文件更改时都会备份它。它不仅可以跨计算机使用,而且您可以在线访问它并拥有它的版本。
有几种这样的在线备份服务——大多数免费提供高达 2GB 的空间。