現時点では、Visual SVNを使用しており、visual svnのリポジトリディレクトリ全体をバックアップしています。これにより、svnエンジン内の各リポジトリーのデータ全体がバックアップされます。緊急事態や災害時にこれらのファイルを復元できるかどうか知りたいのですが。この修復手順の経験はありますか?ありがとう。
参照: http://www.visualsvn.com/support/topic/00012/
これは、次のドキュメントを指しています。
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup
Subversionコマンドを使用してバックアップを取る方法について説明します。直接ディレクトリバックアップを行うと、使用できないリポジトリが作成される可能性があるため、これがすでに実行していることを願っています。
Subversionのバックアップを使用してsvnadmin dump
またはsvnadmin hotcopy
コマンドを使用して、リポジトリ全体を復元します。ただし、他のバックアップ戦略と同様に、復元を自分でテストして、復元が機能することを確認する必要があります。
VisualSVNサーバー3.6バージョン以降、サーバーには 組み込みの定期的なリポジトリバックアップと復元 機能が含まれています。さらに、3.6リリースでは、SVNリポジトリのスケジュールされた検証が追加されています。
Subversionリポジトリのリポジトリバックアップと検証のスケジュール設定は、ほんの数分です。詳しい手順については、記事 KB106:はじめにバックアップと復元 を参照してください。
ワンタイムバックアップを探す場合は、 Backup-SvnRepository PowerShellコマンドレットを使用できます。リポジトリを復元するには、 Restore-SvnRepository を使用します。これらのバックアップコマンドレットは、バージョン3.6以降で使用できます。
メインダウンロードページ からVisualSVNサーバーの最新バージョンをダウンロードします。
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」レジストリキー。
私はそれをやっています:
svnadmin dump "c:/Repositories/svnroot" > c:/backup/svnroot_%date%.dump
また、スペースを節約するためにrar/Zipすることもできます。 LinuxからVisualSVNにSVNを移動したときも同じ方法を使用していたため、このバックアップは正常に機能します。
SVNリポジトリのバックアップを作成する最も簡単で最良の方法は svnsync を使用することです。バックアップリポジトリへのコミットを再生する増分ツールです。簡単に始めることができます- このブログ投稿 を参照してください-変更を送信するだけなので高速です。誰かが過去のrevpropを更新したときの「エッジケース」をキャッチするためにpost-rev-prop-changeフックを設定する必要がありますが、それ以外の場合は(毎回)1時間ごとに実行してバックアップを継続的に維持できます。データのバックアップについて本当に偏執的である場合は、コミット後のフックで実行することもできます!
ライブリポジトリが停止した場合、ライブリポジトリが再び実行されるまで、バックアップリポジトリに「svn relocate」することができます(ただし、svnsyncを実行してそれらを取得しない限り、ライブがダウンしているときにバックアップに何かを書き込む場合は注意してください。ライブリポジトリに適用された変更。これは、考えればかなり明白です)。
したがって、継続的なバックアップがあり、最小限のリソース使用でそれを使用して秒単位で測定されるダウンタイムがあります。バックアップはそれよりはるかに良くなることはありません!
別のオプションは hotcopy です。リポジトリ全体のバックアップを作成します。より多くのディスク容量を必要としますが、実行が非常に簡単で、これを使用してリポジトリを非常に簡単に復元できます。
VisualSVNはWindows製品であるため、Windowsで実行されます。バックアップユーティリティがボリュームシャドウコピーを使用してバックアップを作成できる場合は、内部的に整合性のあるバックアップが作成されます。組み込みのNTBACKUP、Symantec Backup Execなどのサードパーティソフトウェア、またはWindows Server 2008に組み込まれているディスクベースのバックアップツールはすべて、ボリュームシャドウコピーを使用できます。
Windowsシステム上のVisual SVNのデフォルトインストールですべてのリポジトリをバックアップしたいだけの場合
私は次のcmdスクリプトを使用します-リポジトリルートのすべてのサブフォルダーをバックアップパスにダンプし、 7-zips それらをダンプします。
@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