回答:
参照:http : //www.visualsvn.com/support/topic/00012/
これは、次のドキュメントを指します:http :
//www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup
Subversionコマンドを使用してバックアップを取る方法について説明します。ディレクトリを直接バックアップすると、使用できないリポジトリが作成される可能性があるため、これが既に実行していることを願っています。
Subversionからのバックアップを使用し、svnadmin dump
or svnadmin hotcopy
コマンドを使用して完全なリポジトリを復元できるはずです。ただし、他のバックアップ戦略と同様に、復元を自分でテストして、それが機能することを確認する必要があります。
VisualSVN Server 3.6バージョン以降、サーバーには組み込みのスケジュールされたリポジトリのバックアップおよび復元機能が含まれています。さらに、3.6リリースでは、SVNリポジトリの定期的な検証が追加されています。
Subversionリポジトリのスケジュールされたリポジトリのバックアップと検証の設定はほんの数分です。詳細な手順については、記事KB106:Getting Started with Backup and Restoreを参照してください。
1回限りのバックアップを探す場合は、Backup-SvnRepository PowerShellコマンドレットを使用できます 。リポジトリを復元するには、Restore-SvnRepositoryを使用します。これらのバックアップコマンドレットは、バージョン3.6以降で使用できます。
メインダウンロードページからVisualSVN Serverの最新バージョンをダウンロードします。
VisualSVNサーバーリポジトリをバックアップするには、いくつかの方法があります。以下の短い説明を確認してください。
1. svnadmin hotcopy
ツール
svnadmin hotcopy
他のプロセスがリポジトリを使用しているかどうかに関係なく、リポジトリの安全なコピーを作成できます。リポジトリのバックアップを定期的に実行するカスタムスクリプトを作成できます。
Subversionリポジトリのバックアップの詳細については、SVNブックの次の記事を参照してください。http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup
2. svnsync
ツール
これは増分バックアップ方式です。増分バックアップ方式では、前回のバックアップ以降に変更されたリポジトリデータの部分のみがバックアップされます。このツールを「マスター」および「スレーブ」として機能するように設定し、コミットをリポジトリに自動的に複製できます。
詳細については、「svnsync」の記事を参照してください:http ://www.visualsvn.com/support/svnbook/ref/svnsync/
3. Windows Serverバックアップ。Windows Serverバックアップを使用して、Subversionリポジトリをバックアップできます。ネットワーク共有、専用バックアップボリューム、書き込み可能なメディアへのバックアップをスケジュールすることができます。たとえば、wbadmin
コマンドラインツールを使用すると、リポジトリを安全にバックアップできます。この簡単なコマンドはC:\foo\bar
、X:\
ボリュームへの1回限りのコピーバックアップを実行します。
wbadmin start backup –backupTarget:x: -include:c\foo\bar -vsscopy
(Windows Serverバックアップをインストールするにocsetup WindowsServerBackup
は、管理者特権でコマンドプロンプトで実行します)。
バックアップはさまざまな方法でセットアップできます。
wbadmin
コマンドラインツール、FSFSリポジトリバックエンドは常に一貫した状態にあるため、バックアップの実行時にサーバーのサービスを停止する必要はありません。
Windows Serverバックアップの回復に関する一般的なヒントを次に示します。
バックアップを空のディレクトリに復元して、復元されたリポジトリファイルが破損したリポジトリファイルと混ざらないようにします。リポジトリが復元されたら、破損したリポジトリを削除してから、復元されたリポジトリに置き換えることができます。
バックアップからリポジトリをリカバリした後、サイクルサーバーを停止して起動します。
リポジトリの回復後にクライアントがエラーを受け取った場合はsvnadmin recover
、それに対して実行します。コマンドは即座に終了し、リポジトリに再びアクセスできるようにします。
リポジトリを除き、次の情報をバックアップする必要があります。
リポジトリルート(デフォルトでは'C:\ Repositories')に格納されている認証および承認ファイル。設定に応じて、「authz」、「authz-windows」および「htpasswd」というファイルが必要です。
SSL証明書に関する情報が保存されている「%VISUALSVN_SERVER%\ certs \」フォルダー。
VisualSVNサーバーの構成ファイルが保存されている「%VISUALSVN_SERVER%\ conf \」フォルダー。
「HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server」レジストリキー。サーバーの構成の他の部分が格納されています。
SVNリポジトリのバックアップを作成する最も簡単で最良の方法は、svnsyncを使用することです。バックアップリポジトリへのコミットを再生する増分ツール。簡単に始められます- このブログ投稿をご覧ください-そして変更を送信するだけなので高速です。post-rev-prop-changeフックを設定して、誰かが歴史的なrevpropを更新したときの「エッジケース」をキャッチする必要がありますが、そうでない場合はバックアップを継続的に保持するために1時間ごとに実行できます(私と同じように)。データのバックアップに本当に夢中なら、コミット後のフックで実行することもできます!
ライブリポジトリが停止した場合、ライブリポジトリを再度実行するまでバックアップリポジトリに「svn relocate」することができます(ただし、svnsyncを実行してそれらを取得しない限り、ライブがダウンしている間にバックアップに何かを書き込む場合は注意してください)ライブリポジトリに適用される変更は、考えてみると明らかです。
したがって、継続的なバックアップがあり、最小限のリソース使用量でそれを使用してダウンタイムを数秒で測定します。バックアップはそれ以上に良くなりません!
別のオプションはhotcopyです。リポジトリ全体のバックアップを作成します。より多くのディスク領域を占有しますが、実行が非常に簡単で、これを使用してリポジトリを復元することも非常に簡単です。
VisualSVNはWindows製品であるため、Windows上で実行されます。バックアップユーティリティがボリュームシャドウコピーを使用してバックアップを作成できる場合、内部的に一貫したバックアップが作成されます。組み込みのNTBACKUPまたはSymantec Backup Execなどのサードパーティソフトウェア、またはWindows Server 2008に組み込まれているディスクベースのバックアップツールはすべて、ボリュームシャドウコピーを使用できます。
Windowsシステム上のVisual SVNのデフォルトインストールですべてのリポジトリを単にバックアップしたい場合
次のcmdスクリプトを使用します-リポジトリルートのすべてのサブフォルダーをバックアップパスにダンプし、それらを7-zip圧縮します。
@echo off
set svnAdminPath="C:\Program Files (x86)\VisualSVN Server\bin"
set sevenZipPath="C:\Program Files\7-Zip"
set repositoryRoot=d:\Repositories
set backupPath=c:\Source\Backup\SVN
set dateStamp=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%
for /f %%f in ('dir /b /AD %%repositoryRoot%%') do (
call:dumpRepository %%f
call:zipLastDump
)
goto:eof
:dumpRepository
cd /d %svnAdminPath%
set repoPath=%repositoryRoot%/%~1
set dumpFile=%~1_%dateStamp%
echo.-------------------
echo.Dumping %~1 to %dumpFile%.dump
echo.-------------------
svnadmin dump "%repoPath%" > "%backupPath%\%dumpFile%.dump"
exit /b
:zipLastDump
cd /d %sevenZipPath%
set zipFile="%backupPath%\%dumpFile%.7z"
echo.-------------------
echo.Zipping %dumpFile%.dump to %zipFile%
echo.-------------------
7z a "%zipFile%" "%backupPath%\%dumpFile%.dump"
del "%backupPath%\%dumpFile%.dump"
exit /b