データのバックアップ方法

作成日 2010/12/05

Redmineに格納されているデータのバックアップ・リカバリ方法です。

バックアップ対象

Redmineのデータを保全するためには以下のものをバックアップします。

  • Redmineインストールディレクトリ以下のfilesディレクトリ
    チケットやWikiに添付されたファイルが格納されています。
  • データベース
    添付ファイル以外の全ての情報がデータベースに格納されています。

filesディレクトリのバックアップ方法

Redmineのインストールディレクトリ直下のfilesディレクトリ(添付ファイル保存ディレクトリ)をコピーしてください。

filesディレクトリが空の場合、 添付ファイル保存ディレクトリが変更されている場合があります。 config/configuration.yml ファイル内の attachments_storage_path の設定を確認してみてください。

データベースのバックアップ方法

MySQLを使用している場合

mysqldumpコマンドを実行してデータベースのダンプデータを取得します。

MySQLユーザー名、MySQLパスワード、データベース名はconfig/database.yml内のusername, password, databaseを参照すれば確認できます。

mysqldump -u MySQLユーザー名 -pMySQLパスワード Redmineデータベース名 > データ出力先ファイル名

注意: -pとMySQLパスワードの間にスペースは不要です。

PostgreSQLを使用している場合

pg_dumpコマンドを実行してデータベースのダンプデータを取得します。

PostgreSQLユーザー名、ホスト名、データベース名、PostgreSQLパスワードはconfig/database.yml内のusername, host, database, passwordを参照すれば確認できます。データベースのパスワードはpg_dumpコマンドを実行したときに入力を求められます。

pg_dump -U PostgreSQLユーザー名 -h ホスト名 -Fc --file=ダンプデータファイル名 Redmineデータベース名

PostgreSQLのインストールの形態によっては、ホスト名は不要なことがあります。

SQLiteを使用している場合

SQLiteのデータベースファイル(config/database.yml内のdatabaseで指定されているファイル)をコピーしてください。

リカバリ方法

バックアップ元と同一バージョンのRedmineをインストールした後、バックアップ済みのfilesディレクトリとデータベースのデータを投入します。

filesディレクトリのリカバリ

バックアップしておいたfilesディレクトリの内容をそのままRedmineのfilesディレクトリに書き戻してください。

データベースのリカバリ

MySQLの場合

バックアップ時に取得したダンプデータを使って空のMySQLデータベースにデータを投入します。

mysql -u MySQLユーザー名 -pMySQLパスワード Redmineデータベース名 < ダンプデータファイル名

SQLiteの場合

バックアップしておいたSQLiteのデータベースファイルをコピーしてください。

PostgreSQLの場合

PostgreSQLのダンプデータをインポートするには pg_restore コマンドを使用します。

pg_restore -h データベースサーバのIPアドレス -U データベースのユーザー名 -d データベース名 --clean --if-exists --no-owner xxxxxxxx.sqlc

※指定するパラメータは構築済みの環境によって異なります。