トップに戻る 最初に戻る 前に戻る 次へ進む
$Date: 2014-08-18 10:44:43 +0900 (2014/08/18 (月)) $
$Revision: 982 $

Subversionリポジトリのバックアップ

概要

バージョン管理するぐらいですから、Subversion リポジトリには 大抵の場合重要なデータが入っています。

もしハードディスククラッシュ等で失われてしまったら泣くに泣けません。 そうならないように日頃からバックアップを取るようにしましょう。

データ損失リスク

データを失うリスクとしては以下の 3つが考えられます。 バックアップ計画を考える場合、どのリスクに対応する必要があるか 考える必要があります。

ハードディスク故障によるデータ破壊から、リポジトリデータを 保護するためには、リポジトリを格納しているハードディスクドライブとは、 物理的に別のハードディスクまたは外部記憶メディア(DVD-R とか) に バックアップデータを保存する必要があります。同じバードディスクの 別のパーティションにコピーしただけではバックアップしたことになりません。 (通常考えるリスクはこれです。)

ハードディスク故障によるデータ破壊からデータを救う方法として RAID がありますが、RAID では 誤操作やフトウェアのバグによるデータ破壊を 防止する効果はありません。

マシン自体が損傷を受けるようなリスク(火事など)からデータを保護するためには 離れた場所にあるマシンかメディアにバックアップを置く必要があります。 同じマシンの別のハードディスクにバックアップするだけではバックアップも 被害を受けてしまいます。盗難にあってもデータを秘匿にしたいという場合は データの暗号化が必要となります。

どこまでのリスクに対応するかは、保護したいデータの重要度と、 対策を取るために必要な手間とコストとの兼ね合いになります。 それほど重要でないデータを高いコストをかけて保護する必要はありませんし、 きわめて重要なデータであればそれなりの対策を行う必要があります。

バックアップ頻度

バックアップを行うときにはバックアップ頻度を考える必要があります。

これはどれだけの期間のデータを失うことが許容できるかに関わっています。 もしバックアップ頻度が 1週間であれば、最大1週間分のデータを失ってしまう というリスクがあります。1日単位であれば、最大1日分になります。

バックアップを行う頻度を高くすれば、それだけデータを失ってしまうリスクを 少なくすることができますが、バックアップデータを保存しておくための ディスク容量が多く必要です。

通常はフルバックアップを1週間ごとに行い、差分バックアップを 1日ごとに 行う。そして post-commit によるリビジョンごとのバックアップを行うと いうようになると思います。データ量が少なければ毎日フルバックアップを とっても大丈夫です。

バックアップの方法

Subversion のリポジトリのバックアップに利用できる方法は 以下の 4 種類です。いずれの方法でもフルバックアップ、差分バックアップが 可能です。
方法別の特徴
長所 短所
ファイルコピー
  • 簡単に行える
  • バックアップが速い
  • 可搬性に乏しい
  • データエラー検出ができない
  • サーバー管理者しか行えない
svnadmin dump/ load
  • 可搬性が高い
  • 最低限のデータエラー検出ができる
  • バックアップ、リストアに時間がかかる
  • ダンプファイルが壊れたときに復旧が困難
  • サーバー管理者しか行えない
svnsync
  • サーバーダウン時に代替サーバーとして利用可能
  • サーバー管理者でなくともバックアップできる
  • 最低限のデータエラー検出ができる
  • リモートでバックアップができる
  • Subversion 1.4 以降が必要
svnrdump
  • バックアップ、リストアに時間がかかる
  • サーバー管理者でなくともバックアップできる
  • 最低限のデータエラー検出ができる
  • リモートでバックアップができる
  • リモートでリストアができる
  • Subversion 1.6 以降が必要
  • ダンプファイルが壊れたときに復旧が困難

ファイルコピー

リポジトリデータのファイルをコピーする方法です。

詳細はパス。参考 URL を見てください。

長所

短所

参考

svnadmin dump によるダンプ

バックアップには svnadmin dump を実行します。バックアップデータは ダンプファイルの形式で保存します。復旧には svnadmin load を実行します。
容易にフルバックアップ、差分バックアップを行えるようにした svn-backup-dumps.py というスクリプトがあります。
詳細は別ページで解説します。

長所

短所

注意点

参考

svnsync によるバックアップ (ver 1.4 以降)

svnsync によって、リポジトリのレプリケーション(複製)を作成します。 詳細は別ページで解説します。

長所

短所

注意点

svnrdump dump によるダンプ

バックアップには svnrdump dump を実行します。 バックアップデータは svnadmin dump/load と互換のダンプファイルの形式で保存します。 復旧には svnadmin load または svnrdump load を実行します。

長所

短所

注意点