Subversionのリポジトリを別のサーバーに移行する手順

投稿者 : OSCA

[PR] "出川哲朗の充電させてもらえませんか?"で登場したロケ地を紹介するファンサイト「あの場所へ行こう!」はこちら。

Subversionのリポジトリを別のホストへ移行する作業を行ったので、方法を書き残します。

前提/要件

以下を前提/要件として解説します。

  • ホスト OLD_HOST に /var/svn/PROJECT_A という現行のリポジトリがある
  • ホスト NEW_HOST の /var/svn/PROJECT_A にリポジトリを移行したい

手順概要

Subversionにおけるリポジトリの移行には、Subversion の管理コマンド svnadmin を利用して、現行のリポジトリのダンプデータを出力し、そのダンプデータを基に新しいサーバーにリポジトリを復元させる必要があります。

今回の手順順序は以下の通りです。

  1. 現行のリポジトリのダンプデータを出力させる。
  2. (転送負荷を下げる為に)ダンプデータを圧縮させる。
  3. 圧縮したダンプデータを新しいサーバーに転送する。
  4. 圧縮されたダンプデータを解凍する。
  5. 新しいリポジトリにダンプデータを復元する。

手順

それでは、具体的なコマンドを記述していきます。

1. 現行のリポジトリのダンプデータを出力させる

$ svnadmin dump /var/svn/PROJECT_A > /tmp/svn_repository_PROJECT_A.dump

2. (転送負荷を下げる為に)ダンプデータを圧縮させる

サーバー間のファイル転送に時間がかかってしまう事を考慮し、ファイルを圧縮しておきます。 ここでは ZIP 形式で圧縮することとしました。

$ zip /tmp/svn_repository_PROJECT_A.dump.zip /tmp/svn_repository_PROJECT_A.dump

3. 圧縮したダンプデータを新しいサーバーに転送する

$ scp /tmp/svn_repository_PROJECT_A.dump user@NEW_HOST:/tmp/

4. 圧縮されたダンプデータを解凍する

$ unzip /tmp/svn_repository_PROJECT_A.dump.zip

5. 新しいリポジトリにダンプデータを復元する

$ svnadmin create /var/svn/PROJECT_A
$ svnadmin load /var/svn/PROJECT_A /tmp/svn_repository_PROJECT_A.dump

終わりに

Subversion のリポジトリを別のサーバーに移行する手順について説明しました。 svnadmin dump コマンドと svnadmin load コマンドが特にポイントですので覚えておきましょう。

※本記事は、Subversionリポジトリを別のサーバーに移行する を移稿し校正したものです。

Subversion入門へ戻る

Subversionのトップへ戻る

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。 個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca