(Debianベースのサーバーで)Subversionバックアップを実行する最良の方法は何ですか。
Svnadminを使用するのですか?
svnadmin dump /path/to/reponame > reponame.dump
それとも、リポジトリがあるディレクトリをtarするだけですか?
tar -cvzf svn.backup.tar.gz /var/Subversion/
上記の長所と短所は何ですか?
ありがとうヨハン
pdate:これは、ほんの一握りのリポジトリを持つ小さなサーバーです。ですから、増分バックアップはおそらく必要ないでしょう。シンプルに保つことに集中するほうがいいと思います。
pdate:パックラッパースクリプト(svn-hot-backupのラッパー)を使用して完全バックアップを実行し、別のクリーンコンピューターで完全回復を行いました。ただし、「SVN_HOTBACKUP_NUM_BACKUPS = 10」の部分は機能しなかったので削除しました。
私はそれが一種の単純であると私が感じたことに注意してください、そして結果はちょうどdir the dirに非常に近いものでした。しかし、Manniがここでsvn-hot-backup/"svnadmin hotcopy"を使用するように指摘したように、運が悪ければtarが時々破損したバックアップを作成する可能性があるため、より信頼できる方法です。
Svn-hot-backupスクリプトを探します。これはSubversionに同梱され、必要なことを行うためのすべてのロジックに加えて、古いバックアップの自動マジックロールアウトが含まれています。 svn-hot-backupを使用して毎晩cronjobとして実行し、複数のリポジトリを持つ単一のサーバーをバックアップする、次のラッパースクリプトを記述しました。
#!/bin/bash
#
# Dumps the svn repos to a file and backs it up
# to a local directory.
#Keeps the last 10 revisions
REPODIR="/var/repos"
BAKDIR="/data/backup/svn"
PROG="/usr/local/sbin/svn-hot-backup"
REPOLIST='repo1 repo2 repo3'
if [ ! -x "${PROG}" ]
then
echo "svnbak: Could not execute \`${PROG}\`"
exit 1
fi
for repo in ${REPOLIST}
do
# Dump the database to a backup file
echo "svnbak: Dumping Subversion repository: ${repo}"
SVN_HOTBACKUP_NUM_BACKUPS=10 Nice ${PROG} --archive-type=gz ${REPODIR}/${repo} ${BAKDIR}/${repo} &> /tmp/svnbak.$$
if [ "$?" -eq "1" ]
then
echo "svnbak: Hot backup on '${repo}' failed with message:"
/bin/cat /tmp/svnbak.$$
fi
/bin/rm /tmp/svnbak.$$
done
exit 0
これについて documentation を見ましたか?
基本的に、2つのオプションがあります。
svnadmin dump
を使用して増分バックアップを実行するsvnadmin hotcopy
を使用してリポジトリ全体をバックアップしますコピーの作成中にリポジトリが変更される可能性があるため、単にディレクトリのコピーを作成することはオプションではありません。
増分バックアップか完全バックアップかは、偏執狂の量、リポジトリのサイズ、ニーズ、インフラストラクチャによって異なります。
Svnsyncを使用して、それ以外は読み取り専用のリポジトリにバックアップします。これは、それ自体が古いコピー(日、週、月)でバックアップされます。
SVNBackup は、インクリメンタルバックアップを実行できるという事実のため、お勧めします。
何でこれが大切ですか?大規模な開発チームがいて、Subversionのバックアップが毎日あり、システムが古いバックアップに12時間失敗すると、その日の作業全体が失われます。
フルバックアップ(これはSVNホットコピーです)を1日に何度も行うと、リポジトリマシンに不要な負荷がかかり、せっかちな開発者を苛立たせます。
ボーナスとして;また、バックアップソリューションとして Backup-PC をお勧めします。増分リモートバックアップを実行でき、異なるシステムで同じファイルをバックアップする場合、多くのスペースを節約できます。
私はいくつかの100GB + svnリポジトリーをプレーンな古いrsyncでバックアップしています。 svnadmin dump
およびsvnadmin hotcopy
はこれらのリポジトリで数日かかります。
もう1つ見ておくべきことはsvnadmin dump
は、ロックとフックスクリプトをバックアップしません。