6

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

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

问题是:我的存储库怎么这么大(大约 23GB,有 28.029 个修订版),这个操作需要很长时间才能完成。

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

一些额外的信息:

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

2 回答 2

5

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

使用 SVN 自某个日期以来更改的文件列表

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

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

于 2013-05-25T11:48:38.593 回答
1

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

于 2013-03-22T16:57:44.170 回答