web-dev-qa-db-ja.com

Subversionバックアップを実行する最良の方法?

(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が時々破損したバックアップを作成する可能性があるため、より信頼できる方法です。

10
Johan

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
11
Scott Pack

これについて documentation を見ましたか?

基本的に、2つのオプションがあります。

  1. svnadmin dumpを使用して増分バックアップを実行する
  2. svnadmin hotcopyを使用してリポジトリ全体をバックアップします

コピーの作成中にリポジトリが変更される可能性があるため、単にディレクトリのコピーを作成することはオプションではありません

増分バックアップか完全バックアップかは、偏執狂の量、リポジトリのサイズ、ニーズ、インフラストラクチャによって異なります。

9
innaM

Svnsyncを使用して、それ以外は読み取り専用のリポジトリにバックアップします。これは、それ自体が古いコピー(日、週、月)でバックアップされます。

4

SVNBackup は、インクリメンタルバックアップを実行できるという事実のため、お勧めします。

何でこれが大切ですか?大規模な開発チームがいて、Subversionのバックアップが毎日あり、システムが古いバックアップに12時間失敗すると、その日の作業全体が失われます。

フルバックアップ(これはSVNホットコピーです)を1日に何度も行うと、リポジトリマシンに不要な負荷がかかり、せっかちな開発者を苛立たせます。

ボーナスとして;また、バックアップソリューションとして Backup-PC をお勧めします。増分リモートバックアップを実行でき、異なるシステムで同じファイルをバックアップする場合、多くのスペースを節約できます。

4
Andrioid

必要に応じて、svnadminを使用して増分バックアップを作成できます。hot-backup.pytarアーカイブを作成する前に。

これがsvn reposのバックアップについての article です。とにかく、前に述べたように SVN本 を読むことは良い出発点です。

2
Maxwell

私はいくつかの100GB + svnリポジトリーをプレーンな古いrsyncでバックアップしています。 svnadmin dumpおよびsvnadmin hotcopyはこれらのリポジトリで数日かかります。

もう1つ見ておくべきことはsvnadmin dumpは、ロックとフックスクリプトをバックアップしません。

0
kband