0

皆さん、こんにちは。良い一日をお過ごしください。

役に立たない解決策を探した小さな問題があります。多分ここの誰かが私を助けることができますか?問題はこれです:

私が書いたスクリプトを使用しています。これは、すべてのフォルダーをループし、ネットワークの場所へのリポジトリのホットコピーを実行します。次のエラーで失敗する 1 つのレポを除いて、すべてが非常にうまく機能します。

svnadmin: ファイル 'E:\repositories\20100831_repository_xyz\db\revs\0\235' を開けません: 指定されたファイルが見つかりません。
リポジトリをバックアップできません。<==エラー セグメントの完了==!>

リビジョンが失われてもかまいませんが、明らかにエクスポートとインポートができません (すべてのリビジョンが失われます)。また、夜間のバックアップが壊れているため、修正する必要があります。4週間で500GB使用…

誰もが実用的な解決策を持っていますか?

4

1 に答える 1

2

まず第一に、svnadmin dump各レポをそのメタデータ(リビジョン、変更、ユーザーなど)でパッケージ化するため、使用する方が良いでしょう。いくつかのファイルを失う可能性があるため、「ダウンアンドダーティ」メソッドは危険ですそれらをネットワーク経由で転送しながら。次に、イントラネット、インターネットなどを介してすべてのリポジトリを安全に転送し、それらを別の SVN インスタンスにロードするか、ファイルを保持することができます。

コマンドの動作は次のとおりです。

svnadmin dump REPOSITORY_NAME > out_file.dump

私が使用しているのは、svn_root ディレクトリを でスキャンする cronjob ですls -1。これは、すべてのディレクトリ (./ と ../ を除く) のすべてのルート Repo ディレクトリが存在する場所であり、それらの名前を取得し、それぞれのリポジトリ ダンプを実行します。それが完了したら、ssh 経由でファイルを別のサーバーに安全に移動します。

もう1つ-(スレーブ/ミラーとして)動作している別のサーバーを最新の状態にしたい場合は、リポジトリフックを使用してマスターと同期できます。説明してほしい場合は、これについてコメントしてください。それはまったく難しいことではありません。

于 2012-07-16T21:23:32.200 に答える