6

かなり大きな SVN リポジトリ (50 GB、100000 以上のリビジョン) があります。作業は非常に遅く、私の推測では、これは db/revs と db/revprops のフラットなディレクトリ構造 (各リビジョンが 1 つのファイル) にあると推測されます。

SVN 1.5 (Linux サーバー上) で FSFS 形式を使用していますが、リポジトリは古い SVN バージョンで作成されています。今、私はSVN 1.5が「シャーディング」をサポートしていることを読み、この機能がリビジョンを複数のディレクトリに配布するため、単一のディレクトリにそれほど多くのファイルが含まれないことを理解しました。これはかなり便利に思えますが、残念ながら、この機能は SVN 1.5 で新しく作成されたリポジトリでのみ使用されるようです。

大規模な既存のリニア リポジトリをシャード リポジトリに変換するにはどうすればよいですか? マニュアルには「fsfs-reshard.py」というツールが記載されていますが、このスクリプトには「このスクリプトは未完成であり、ライブ データで使用する準備ができていません。信頼してください。」と書かれています。だから絶対に使いたくない。代替手段はありますか?

4

3 に答える 3

8

とトリック svnadmin dumpを行いますか?http://subversion.apache.org/faq.html#dumploadsvnadmin load

于 2010-10-27T15:28:19.510 に答える
3

最善の方法は、前述のダンプ/ロード サイクルです。ただし、アップグレードを試すことはできます。

svnadmin upgrade

最初にレポのコピーを作成し、アップグレードを試してテストします.... (バックアップを作成することをお忘れなく)。

于 2010-10-27T15:38:55.767 に答える
1

fsfs-reshard.pyダンプ/復元プロセスには多くのディスク容量と処理時間が必要なため、Subversion 1.6 FSFS フォーマット 5 のサポートを含む 改良版を (2010 年に) 公開しました: https://github.com/ymartin59/svn-fsfs-reshard

線形レイアウトからシャード レイアウトへの切り替えをサポートし、必要に応じてシャードをアンパックします。シャード統計計算のおかげで、適切なシャード サイズを選択することで、圧縮されたリビジョン サイズを予測できます。

もちろん、注意して使用する必要があります。

  • 可能であれば、リポジトリのコピーに対する最初のテスト手順
  • バックアップを復元する準備を整える
  • 処理中にリポジトリへのアクセスを防止する
  • svnadmin verifyライブにする前に実行する
于 2015-11-28T08:26:59.680 に答える