2013-03-21 63 views
4

我有一个大型资源库到我工作的企业中的SVN服务器。我需要每天验证此存储库的完整性,以检查SGBD的某些不稳定性或破裂。优化SVNAdmin在SVN中验证

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

问题是:我的存储库如何很大(大约23GB和28.029版本),这个操作在完成之前需要很多时间。

问题是:我该如何优化此操作,以便比实际占用更少的时间?或者有其他方式可以用我用更少的时间来验证我的存储库的完整性吗?

一些额外的信息:

  • 操作系统,其中SVN仓库安装是:Windows Server 2008的
  • 的SVN服务器我使用我的存储库是:VisualSVN服务器管理器2.5。 7
  • 命令“svnadmin path_to_my_repository”实际需要约18〜24小时。

回答

0

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

+0

这应该会触发很多硬盘在服务器上的访问,因此在很多情况下会减慢全局验证的no?至少,小心限制并行线程的数量应该很有用。 – AFract 2017-02-07 19:20:06

2

“svnadmin verify”命令有几个不同的参数。其中之一是“--revision”。因此,对于每个存储库,您应该做些什么,找出一种方法来获取在过去N天内修改的修订列表(如果每天运行,最后7天),并且只验证这些修订。

List of files changed since a certain date using SVN

你还是应该做一个完整的 “svnadmin的验证” 整个仓库定期(每周?每月?)。完整检查的频率应该是这样的,如果遇到问题,您可以从您的备份集中取出损坏的修订版。或者,如果您使用“svnadmin hotcopy”并将该hotcopy推送到第二组主轴(或第二个服务器),则可以让hotcopy进行验证。这将消除主磁盘的负载。

+0

嘿,那看起来很好!也许我可以将你的建议与我的结合起来,并优化我的任务。谢谢。 – kamusett 2013-06-11 15:40:53