No more Death March

あるSEのチラシの裏 C# WPF

Bitmani Redmineのバックアップとリストア

昨日書いた以下の続きから

nomoredeathmarch.hatenablog.com

バックアップとリストアの手段を確認したい

 プロジェクトとかチケットとか細かい運用方法を考える前になにかあったときのためにバックアップとリストアの手順を確認しておく。また社内に普及する時にPC内のRedmineのチケットならなにやらをサーバーにスムーズに移したいしね。

とりあえずRedmineのバックアップって何をバックアップすれば良いのか。

 以下参照

qiita.com

つまり

Redmineインストールフォルダ内の「files」フォルダに入っているもの一式
Redmineのデータが登録されているデータベースのフルバックアップ

 この二つがバックアップされていれば良いということらしい。filesフォルダ内にはチケットやWikiに添付されたファイル類の保存先とのこと、それ以外のプロジェクトやチケットの情報はデータベース(Bitmaniのオールインワンパッケージを使ったならMySql)に保存されている様子。

filesフォルダの場所を確認

 自宅PCの環境だと以下のフォルダと思われる。

D:\Bitnami\redmine-4.0.3-3\apps\redmine\htdocs\files

データベース名、ユーザー名、パスワード等の確認

 以下のファイルから確認出来た。

D:\Bitnami\redmine-4.0.3-3\apps\redmine\htdocs\config\database.yml

 MySQLに触れるのがかなり久しぶりなので不安なのだけど概ね他のデータベース製品と同じだろう。
大体
インスタンス
・ユーザー名
・パスワード
・ポート
エンコード
・ホスト名
このあたりを抑えとけばどうにでもなるだろう。

fileのバックアップ

 こちらはなんてことないだろう。とりあえずフォルダ毎ごっそりコピーして避けてみた。

MySQLのパスの確認

 バックアップ前にパスが通っているか確認してみたところ通っておらず。大体のデータベース製品てインストールした後に自分でパス通すしね。というわけでパスを通す場所を探してみたら以下のbinフォルダ内にそれらしいもの一式があったのでパスへ登録。と思ったけどコマンドファイルでやればいいかと思い登録せず。

D:\Bitnami\redmine-4.0.3-3\mysql\bin

dump取得用のコマンド作成

 以下のようなコマンドを作って実行してみると実行直後に警告文が表示されるけどダンプ自体はとれた模様。binフォルダ内にファイルが出力されている。ちなみに警告の内容は「コマンドラインインターフェースでパスワードべた書きするな、セキュアじゃないだろアホか。」という旨の内容。はい、ごもっともです。

pause
d:
cd D:\Bitnami\redmine-4.0.3-3\mysql\bin
mysqldump -u [username] -p[password] [databasename] > bitnami_redmine_backup
pause

※[]部分は各環境に合わせて読みかえる。

リストアコマンドの作成

 同じ要領でリストアコマンドを以下のように作った。で、実行するとバックアップの時と同じように警告が出るが処理出来た模様。

pause
d:
cd D:\Bitnami\redmine-4.0.3-3\mysql\bin
mysql -u [username] -p[password] [databasename] < bitnami_redmine_backup
pause

バックアップの結果を確認

 filesを復元する手順は兎も角として、MySqlの方がこれで復元できているか不安なのでRedmineに適当にチケットやプロジェクトを登録して再度復元を実行してみたところ無事復元出来た。悪意を持ってログインしっぱなしでリストアしてみるとリストア直後に画面を移動するとセッションが失効した旨のエラーが出てログイン画面に戻された。

最後に

 とりあえずバックアップとリストアは簡単に出来そうなので安心した。社内でサーバ立てることになってもこれなら簡単にローカルで抱えてたプロジェクトとかチケットを移せそう。