[SVN]: 如何备份版本库?

[SVN]: 如何备份版本库?

如果存储库包含在一个文件夹中,是否只需备份该文件夹,而不用键入命令来创建转储?

答案1

这在颠覆之书

就完整备份而言,这种简单的方法似乎很明智,但除非您暂时禁用对存储库的所有其他访问,否则简单地执行递归目录复制可能会产生错误备份的风险。对于 Berkeley DB,文档描述了可以复制数据库文件的特定顺序,这将保证备份副本有效。FSFS 数据也存在类似的顺序。但您不必自己实现这些算法,因为 Subversion 开发团队已经这样做了。svnadmin 热复制命令负责处理对存储库进行热备份所涉及的细节。并且它的调用与 Unix 一样简单cp或 Windows复制运营:

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

生成的备份是一个功能齐全的 Subversion 存储库,如果出现严重错误,它可以作为实时存储库的替代品。

...

还可以使用围绕此命令的其他工具。工具/备份/Subversion 源代码分发目录中包含热备份.py脚本。此脚本在顶部添加了一些备份管理svnadmin 热复制,允许您仅保留每个存储库的最新配置数量的备份。它将自动管理备份存储库目录的名称,以避免与以前的备份发生冲突,并将“轮换”较旧的备份,删除它们,以便只保留最新的备份。即使您还有增量备份,您可能也希望定期运行此程序。例如,您可以考虑使用热备份.py来自程序调度程序(例如计划任务在 Unix 系统上),这会导致它在夜间运行(或者在您认为安全的任何时间粒度运行)。

答案2

你可以看看这个

如果您只想备份签出,您可以像普通文件夹一样将其存档,svn 配置存储在.svn存储库每个文件夹中的文件夹中。

(该问题应移至超级用户)

答案3

不可以,如果不锁定存储库,则无法备份存储库文件夹。请参阅本章SVN 书籍以获取有关备份的更多信息。

转储是进行备份的一种方法。您还可以进行热复制:

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

或者,您可以使用它svnsync来不断保存存储库的最新副本。如果您没有强大的 SVN 服务器,它还有一个优点,即可以避免服务器因备份而瘫痪。

答案4

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

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

相关内容