回答:
あなたは(Linux)のようなものを使うことができます:
svnadmin dump repositorypath | gzip > backupname.svn.gz
WindowsはGZipをサポートしていないため、次のようになります。
svnadmin dump repositorypath > backupname.svn
svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn
これにより、からの出力である「backupname.svn」という単一のファイルを含む「backup.7z」という名前のファイルが作成されsvnadmin dump
ます。
for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
svnadmin hotcopyを使用します。例:
svnadmin hotcopy C:\svn\repo D:\backups\svn\repo
あたりとしての本:
他のプロセスがリポジトリを使用しているかどうかに関係なく、いつでもこのコマンドを実行してリポジトリの安全なコピーを作成できます。
もちろん、バックアップコピーをZIP(できれば7-Zip)することもできます。IMHOこれは最も簡単なバックアップオプションです。災害が発生した場合は、解凍して元の場所に戻す以外にすべきことはほとんどありません。
Subversion Webサイトには、バックアップの自動化に非常に便利なhotbackup.pyスクリプトが用意されています。
http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in
以下は、Perlスクリプトです。
スクリプト:
my $svn_repo = "/var/svn";
my $bkup_dir = "/home/backup_user/backups";
my $bkup_file = "my_backup-";
my $tmp_dir = "/home/backup_user/tmp";
my $bkup_svr = "my.backup.com";
my $bkup_svr_login = "backup";
$bkup_file = $bkup_file . `date +%Y%m%d-%H%M`;
chomp $bkup_file;
my $youngest = `svnlook youngest $svn_repo`;
chomp $youngest;
my $dump_command = "svnadmin -q dump $svn_repo > $bkup_dir/$bkup_file ";
print "\nDumping Subversion repo $svn_repo to $bkup_file...\n";
print `$dump_command`;
print "Backing up through revision $youngest... \n";
print "\nCompressing dump file...\n";
print `gzip -9 $bkup_dir/$bkup_file\n`;
chomp $bkup_file;
my $zipped_file = $bkup_dir . "/" . $bkup_file . ".gz";
print "\nCreated $zipped_file\n";
print `scp $zipped_file $bkup_svr_login\@$bkup_svr:/home/backup/`;
print "\n$bkup_file.gz transfered to $bkup_svr\n";
#Test Backup
print "\n---------------------------------------\n";
print "Testing Backup";
print "\n---------------------------------------\n";
print "Downloading $bkup_file.gz from $bkup_svr\n";
print `scp $bkup_svr_login\@$bkup_svr:/home/backup/$bkup_file.gz $tmp_dir/`;
print "Unzipping $bkup_file.gz\n";
print `gunzip $tmp_dir/$bkup_file.gz`;
print "Creating test repository\n";
print `svnadmin create $tmp_dir/test_repo`;
print "Loading repository\n";
print `svnadmin -q load $tmp_dir/test_repo < $tmp_dir/$bkup_file`;
print "Checking out repository\n";
print `svn -q co file://$tmp_dir/test_repo $tmp_dir/test_checkout`;
print "Cleaning up\n";
print `rm -f $tmp_dir/$bkup_file`;
print `rm -rf $tmp_dir/test_checkout`;
print `rm -rf $tmp_dir/test_repo`;
リモートサーバーをミラー/スレーブとして設定するsvnsyncを使用しています。2週間前にサーバーがダウンしたため、スレーブをプライマリの位置に簡単に切り替えることができました(スレーブリポジトリのUUIDを元の位置にリセットするだけで済みました)。
もう1つの利点は、同期をどちらかのサーバーのタスクとしてではなく、仲介者が実行できることです。2つのVPN間でリポジトリを同期するクライアントがありました。
svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH
このサブコマンドは、すべてのフック、構成ファイル、そしてもちろんデータベースファイルを含む、リポジトリの完全な「ホット」バックアップを作成します。
でリポジトリのバックアップ(ダンプ)を作成できますsvnadmin dump
。
次に、を使用してインポートできsvnadmin load
ます。
SVNBookの詳細なリファレンス: 「svnadminを使用したリポジトリデータの移行」
基本的に、SVNサーバーが停止している場合は、リポジトリフォルダーをコピーしても安全です。(ソース:https : //groups.google.com/forum/?fromgroups#!topic / visualsvn / i_55khUBrys%5B1-25%5D)
サーバーを停止することが許可されている場合は、スクリプトを実行するか、バックアップツールを使用して、リポジトリをコピーしてください。Cobian Backupは、サービスを自動的に停止および開始でき、増分バックアップを実行できるため、最近変更されたリポジトリの一部のみをバックアップできるため、適切に適合します(リポジトリが大きく、リモートの場所にバックアップしている場合に便利です) )。
例:
バックアップタスクを追加します。
ソースをリポジトリフォルダに設定します(例:)C:\Repositories\
、
バックアップ前のイベント"STOP_SERVICE"
VisualSVN を追加します。
バックアップ後のイベント、"START_SERVICE"
VisualSVN、
必要に応じて他のオプションを設定します。古いものの削除、バックアップスケジュール、宛先、圧縮を含む増分バックアップを設定しました。アーカイブ分割など
利益!
SVNサーバーをバックアップするには、主に2つの方法があります。1つ目は、リポジトリファイルのコピーを作成するホットコピーです。このアプローチの主な問題は、基盤となるファイルシステムに関するデータを保存することです。別のsvnサーバーの種類または別のマシンでのこの種のバックアップ。ダンプと呼ばれる別のタイプのバックアップがあります。このバックアップは、基礎となるファイルシステムとそのポータブルの情報をtigiris.org subversionに基づくあらゆる種類のSVNサーバーに保存しません。
コマンドプロンプトからsvnadminツール(ホットコピーとダンプを実行できます)を使用できるバックアップツールについては、このコンソールはsvnサーバーが存在するのと同じディレクトリに存在するか、またはsvnバックアップツールをグーグルできます。
私の推奨は、両方の種類のバックアップを行い、それらをオフィスからメールアカウント、amazon s3サービス、ftp、またはazureサービスに転送することです。これにより、svnサーバーをどこかでホストしなくても、安全なバックアップを取得できます。あなたのオフィス。
ローカルとリモートのSubversionリポジトリのダンプを作成するためのGUI Windowsツールを次に示します。
https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html
ツールの説明は言う:
このツールは、ローカルおよびリモートのSubversionリポジトリのダンプバックアップを作成するためのものです。ソフトウェアは「svnadmin」と同じように機能しますが、GUIのフロントエンドではありません。代わりに、Subversionライブラリを直接使用して、他の追加ツールなしでスタンドアロンモードでダンプを作成できるようにします。
この助けを願っています...
repoディレクトリ全体をバックアップ場所にコピーするだけです。そうすれば、何かが発生した場合にディレクトリをコピーして、すぐに使用できるようにすることができます。
必要に応じて、権限を保持してください。通常、これはLinuxマシンでのみ問題になります。
FSFSリポジトリ形式(デフォルト)を使用している場合は、リポジトリ自体をコピーしてバックアップを作成できます。古いBerkleyDBシステムでは、リポジトリはプラットフォームに依存しないため、通常はsvnadmin dumpを使用します。
バックアップ用svnbook文書のトピックは推奨していますsvnadmin hotcopy
、それは、使用中のファイルのような問題の世話をし、そのようになるように、コマンドを。
@echo off
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set folder=%date:~6,4%%date:~3,2%%date:~0,2%%hour%%time:~3,2%
echo Performing Backup
md "\\HOME\Development\Backups\SubVersion\%folder%"
svnadmin dump "C:\Users\Yakyb\Desktop\MainRepositary\Jake" | "C:\Program Files\7-Zip\7z.exe" a "\\HOME\Development\Backups\SubVersion\%folder%\Jake.7z" -sibackupname.svn
これは、バックアップを実行するために実行しているバッチファイルです
毎日の完全バックアップソリューションの場合は、SVNバックアップスクリプトを使用してください。
プロジェクトのリモートSVNリポジトリのバックアップを取るために、従った手順をまとめました。
install svk (http://svk.bestpractical.com/view/SVKWin32)
install svn (http://sourceforge.net/projects/win32svn/files/1.6.16/Setup-Subversion-1.6.16.msi/download)
svk mirror //local <remote repository URL>
svk sync //local
これには時間がかかり、リポジトリからログをフェッチしていると表示されます。内部に一連のファイルを作成しますC:\Documents and Settings\nverma\.svk\local
。
このローカルリポジトリをリモートリポジトリの最新の変更セットで更新するには、前のコマンドを時々実行するだけです。
これで、ローカルリポジトリ(/home/user/.svk/local
この例では)を通常のSVNリポジトリのように操作できます。
このアプローチの唯一の問題は、ローカルリポジトリが作成され、リモートリポジトリの実際のリビジョンによってリビジョンが増加することです。誰かが書いたように:
svk mirorコマンドは、作成されたばかりのリポジトリにコミットを生成します。したがって、後続の同期によって作成されるすべてのコミットには、リモートのパブリックリポジトリと比較して、リビジョン番号が1ずつ増えます。
しかし、リモートリポジトリの時々のバックアップだけが必要だったので、これは私には問題ありませんでした。
検証:
確認するには、次のようなローカルリポジトリでSVNクライアントを使用します。
svn checkout "file:///C:/Documents and Settings\nverma/.svk/local/" <local-dir-path-to-checkout-onto>
このコマンドは、ローカルリポジトリから最新のリビジョンをチェックアウトします。最後にそれは言うChecked out revision N
。このN
は、リモートリポジトリで見つかった実際のリビジョンよりも1つ多かった(上記の問題のため)。
svkがすべての履歴をもたらしたことを確認するために、2、10、50 -r
などを使用してさまざまな古いリビジョンでSVNチェックアウトを実行しました。次に、<local-dir-path-to-checkout-onto>
そのリビジョンからのを確認しました。
最後に、ディレクトリC:/Documents and Settings\nverma/.svk/local/
を圧縮して、どこかに保存します。これを定期的に行ってください。
1.1 SVN(Subversion)リポジトリからダンプを作成する
svnadmin dump /path/to/reponame > /path/to/reponame.dump
実際の例
svnadmin dump /var/www/svn/testrepo > /backups/testrepo.dump
1.2 Gzipで作成されたダンプ
gzip -9 /path/to/reponame.dump
実際の例
gzip -9 /backups/testrepo.dump
1.3ワンライナー付きのSVNダンプとGzipダンプ
svnadmin dump /path/to/reponame | gzip -9 > /path/to/reponame.dump.gz
実際の例
svnadmin dump /var/www/svn/testrepo |Â gzip -9 > /backups/testrepo.dump.gz
LinuxでSVN(Subversion)リポジトリをバックアップ(ダンプ)および復元(ロード)する方法。
参照: svn subversionバックアップと復元