6

私が働いている企業のSVNサーバーに大きなリポジトリがあります。SGBD の不安定性や破裂をチェックするために、このリポジトリの整合性を毎日確認する必要があります。

プロンプトコマンドライン「svnadmin path_to_my_repository」を使用して、リポジトリの整合性を確認しています。

問題は、リポジトリが非常に大きい (28.029 リビジョンで約 23GB) ため、この操作が完了するまでに多くの時間がかかることです。

問題は、この操作を最適化して、実際にかかる時間を短縮するにはどうすればよいかということです。または、リポジトリの整合性を短時間で検証するために使用できる他の方法がありますか?

追加情報:

  • SVN リポジトリがインストールされている OS: Windows Server 2008
  • リポジトリを保存するために使用しているSVNサーバーは次のとおりです。VisualSVNサーバーマネージャー2.5.7
  • コマンド「svnadmin path_to_my_repository」は、実際には約 18 ~ 24 時間かかります。
4

2 に答える 2

5

「svnadmin verify」コマンドは、いくつかの異なる引数を取ります。そのうちの 1 つが "--revision" です。したがって、所有しているリポジトリごとに何をすべきか、過去 N 日間 (これが毎日実行されている場合はおそらく過去 7 日間) に変更されたリビジョンのリストを取得する方法を見つけ、それらのみを検証する必要があります。

SVNを使用して特定の日付以降に変更されたファイルのリスト

定期的に (毎週? 毎月?) リポジトリ全体に対して完全な "svnadmin verify" を実行する必要があります。完全チェックの頻度は、問題が発生した場合にバックアップ セットから壊れたリビジョンを取り出せる程度にする必要があります。

あるいは、「svnadmin hotcopy」を使用して、そのホットコピーを 2 番目のスピンドル セット (または 2 番目のサーバー) にプッシュする場合、ホットコピーを検証することができます。これにより、プライマリ ディスクの負荷が軽減されます。

于 2013-05-25T11:48:38.593 に答える
1

私が見つけた最速の解決策は、svn コマンド (svnadmin path_to_my_repository) の呼び出しを並列化するスクリプトをコーディングすることでした。次に、スレッドごとに、SVNServer の別のリポジトリに対してコマンド「verify」を呼び出しました。これは私が探している解決策ではありませんが、これでパフォーマンスが向上しました。svnadmin コマンドのみを使用してこのタスクを最適化するソリューションを誰かが知っている場合は、教えてください。ありがとう。

于 2013-03-22T16:57:44.170 に答える