:如何备份资料库?

如果存储库包含在一个文件夹中,那么是否需要备份这个文件夹而不是input命令来创build转储?

这在Subversion书中有详细的描述:

至于完整的备份,简单的方法可能看起来像一个理智的方法,但除非您临时禁用所有其他访问您的存储库,只是做一个recursion的目录副本存在产生错误备份的风险。 在Berkeley DB的情况下,文档描述了可以复制数据库文件的特定顺序,这将保证有效的备份副本。 FSFS数据存在类似的sorting。 但是你不必自己实现这些algorithm,因为Subversion开发团队已经这样做了。 svnadmin hotcopy命令负责处理存储库热备份的细节。 其调用与Unix cp或Windows 复制操作一样微不足道:

$ svnadmin hotcopy /var/svn/repos /var/svn/repos-backup 

由此产生的备份是一个function齐全的Subversion版本库,如果出现可怕的错误,可以将其replace为您的实时存储库。

有关此命令的其他工具也可用。 Subversion源代码发行版的tools / backup /目录包含hot-backup.py脚本。 此脚本在svnadmin hotcopy上添加了一些备份pipe理function,使您可以仅保留每个存储库的最新configuration数量的备份。 它会自动pipe理备份的存储库目录的名称,以避免与以前的备份冲突,并将“closures”较旧的备份,删除它们,以便只保留最近的备份。 即使您也有一个增量备份,您可能需要定期运行此程序。 例如,你可能会考虑使用程序调度程序(例如Unix系统上的cron )的hot-backup.py ,这可能导致它每晚(或以你认为安全的任何时间粒度)运行。

你可以看看这个页面 。

如果你只想备份一个结帐,你可以像普通文件夹一样将其存档,svn configs存储在仓库每个文件夹的.svn文件夹中。

(这个问题应该以超级用户的身份提出)

不,不能在不locking存储库的情况下备份存储库文件夹。 有关备份的更多信息,请参阅SVN手册的这一章 。

转储是执行备份的一种方法。 你也可以做一个hotcopy:

 svnadmin hotcopy /var/svn/repos /var/svn/repos-backup 

或者,您可以使用svnsync来不断地保持您的存储库的最新副本。 如果你没有一个强大的SVN服务器,这也有防止服务器瘫痪备份的优势。

如果您确定没有用户在复制存储库文件夹时将提交任何内容,那么这是安全的。

否则,build议使用hotcopy或dump命令。