2013-03-21 38 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