优化SVN中的SVNAdmin验证

kam*_*ett 5 svn optimization verify visualsvn-server svnadmin

我在工作的企业中将大型存储库放入SVN服务器中。我每天需要验证此存储库的完整性,以检查SGBD的某些不稳定或破裂。

我正在使用提示命令行“ svnadmin path_to_my_repository”来验证我的存储库的完整性。

问题是:我的存储库太大(约28GB,28.029版本),此操作需要大量时间才能完成。

问题是:我如何优化此操作以花费比实际更少的时间?还是我可以用其他方法用更少的时间来验证存储库的完整性?

一些额外的信息:

  • SVN存储库的安装操作系统为:Windows Server 2008
  • 我用来存储资源库的SVN服务器是:VisualSVN Server Manager 2.5.7
  • 命令“ svnadmin path_to_my_repository”实际上大约需要18到24小时。

tgh*_*old 5

“svnadmin verify”命令采用几个不同的参数。其中之一是“--修订”。因此,您应该为您拥有的每个存储库做些什么,找到一种方法来获取最近 N 天(如果每天运行,则可能是最近 7 天)修改的修订列表,并且仅验证这些修订。

使用 SVN 自特定日期以来更改的文件列表

您仍然应该定期(每周?每月?)对整个存储库进行完整的“svnadmin verify”。完整检查的频率应该是这样的:如果遇到问题,您可以将损坏的修订版本从备份集中删除。

或者,如果您使用“svnadmin hotcopy”并将该热副本推送到第二组主轴(或第二台服务器),则可以验证该热副本。这将减轻主磁盘的负载。


kam*_*ett 1

我发现的最快解决方案是编写一个并行调用 svn 命令(svnadmin path_to_my_repository)的脚本。然后,对于每个线程,我为 SVNServer 中的不同存储库调用命令“验证”。这不是我正在寻找的解决方案,但我由此获得了一些性能提升。如果有人知道仅使用 svnadmin 命令优化此任务的解决方案,请告诉我们。谢谢。