Windows VisualSVNのリポジトリをバックアップする方法は何ですか?


15

現時点では、Visual SVNを使用しており、visual svnのリポジトリディレクトリ全体をバックアップしています。これにより、svnエンジン内の各リポジトリのデータ全体がバックアップされます。緊急または災害の場合にこれらのファイルを復元できるかどうか興味がありますか?この修復手順の経験はありますか?ありがとう。


1
実際に復元をテストしていない場合は、バックアップに自信がない可能性があります。
マイケルハンプトン

回答:


11

参照:http : //www.visualsvn.com/support/topic/00012/

これは、次のドキュメントを指します:http :
//www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

Subversionコマンドを使用してバックアップを取る方法について説明します。ディレクトリを直接バックアップすると、使用できないリポジトリが作成される可能性があるため、これが既に実行していることを願っています。

Subversionからのバックアップを使用し、svnadmin dumpor svnadmin hotcopyコマンドを使用して完全なリポジトリを復元できるはずです。ただし、他のバックアップ戦略と同様に、復元を自分でテストして、それが機能することを確認する必要があります。


8

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\barX:\ボリュームへの1回限りのコピーバックアップを実行します。

wbadmin start backup –backupTarget:x: -include:c\foo\bar -vsscopy

(Windows Serverバックアップをインストールするにocsetup WindowsServerBackupは、管理者特権でコマンドプロンプトで実行します)。

バックアップはさまざまな方法でセットアップできます。

FSFSリポジトリバックエンドは常に一貫した状態にあるため、バックアップの実行時にサーバーのサービスを停止する必要はありません。

Windows Serverバックアップの回復に関する一般的なヒントを次に示します。

  1. バックアップを空のディレクトリに復元して、復元されたリポジトリファイルが破損したリポジトリファイルと混ざらないようにします。リポジトリが復元されたら、破損したリポジトリを削除してから、復元されたリポジトリに置き換えることができます。

  2. バックアップからリポジトリをリカバリした後、サイクルサーバーを停止して起動します。

  3. リポジトリの回復後にクライアントがエラーを受け取った場合はsvnadmin recover、それに対して実行します。コマンドは即座に終了し、リポジトリに再びアクセスできるようにします。


リポジトリを除き、次の情報をバックアップする必要があります。

  1. リポジトリルート(デフォルトでは'C:\ Repositories')に格納されている認証および承認ファイル。設定に応じて、「authz」「authz-windows」および「htpasswd」というファイルが必要です。

  2. SSL証明書に関する情報が保存されている「%VISUALSVN_SERVER%\ certs \」フォルダー。

  3. VisualSVNサーバーの構成ファイルが保存されている「%VISUALSVN_SERVER%\ conf \」フォルダー。

  4. 「HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server」レジストリキー。サーバーの構成の他の部分が格納されています。


1
最後のオプションでは、svnサービスを停止する必要があります。そうしないと、アクティブなコミットが存在するレポジトリをバックアップするリスクがあり、バックアップが破損したままになります。
アンディ14

5

私はそれをやっています:

svnadmin dump "c:/Repositories/svnroot" > c:/backup/svnroot_%date%.dump

また、スペースを節約するためにrar / zipすることもできます。SVNをLinuxからVisualSVNに移動したときに同じ方法を使用していたため、このバックアップは正常に機能します。


3

SVNリポジトリのバックアップを作成する最も簡単で最良の方法は、svnsyncを使用することです。バックアップリポジトリへのコミットを再生する増分ツール。簡単に始められます- このブログ投稿をご覧ください-そして変更を送信するだけなので高速です。post-rev-prop-changeフックを設定して、誰かが歴史的なrevpropを更新したときの「エッジケース」をキャッチする必要がありますが、そうでない場合はバックアップを継続的に保持するために1時間ごとに実行できます(私と同じように)。データのバックアップに本当に夢中なら、コミット後のフックで実行することもできます!

ライブリポジトリが停止した場合、ライブリポジトリを再度実行するまでバックアップリポジトリに「svn relocate」することができます(ただし、svnsyncを実行してそれらを取得しない限り、ライブがダウンしている間にバックアップに何かを書き込む場合は注意してください)ライブリポジトリに適用される変更は、考えてみると明らかです。

したがって、継続的なバックアップがあり、最小限のリソース使用量でそれを使用してダウンタイムを数秒で測定します。バックアップはそれ以上に良くなりません!


3

別のオプションはhotcopyです。リポジトリ全体のバックアップを作成します。より多くのディスク領域を占有しますが、実行が非常に簡単で、これを使用してリポジトリを復元することも非常に簡単です。


2

VisualSVNはWindows製品であるため、Windows上で実行されます。バックアップユーティリティがボリュームシャドウコピーを使用してバックアップを作成できる場合、内部的に一貫したバックアップが作成されます。組み込みのNTBACKUPまたはSymantec Backup Execなどのサードパーティソフトウェア、またはWindows Server 2008に組み込まれているディスクベースのバックアップツールはすべて、ボリュームシャドウコピーを使用できます。


これはトランザクション的に適切ではありません。データベースの場合と同じように、サーバーに何らかの方法でバックアップを行わせる必要があります。
デビッドヘ

SQL Serverの場合、実際にはVSSベースのバックアップはトランザクション的に安全です。VisualSVNサーバーの場合、Windowsベースのサーバーとして、標準のWindowsバックアップソリューションのいずれかによってバックアップされたときに、SQL Serverと同様に正しく動作することを期待します。私はそれがそうであるかどうかを示唆する証拠がありません。
ティムロング

疑わしい。VisualSVNは単純にsvnパッケージ化されています。VSSと統合されたバックアップがあるという兆候を見たことはありません。
デビッド

0

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.