Bitnamiでほいほいとローカルインストールしたredmineのバックアップ方法です。
スモールスタートしたものの、バックアップなしは怖い、に対処する程度です。
元となるbatファイル
redmineフォルダにあるuse_redmine.batファイルを複製して改造します。(私はDドライブにインスコ)
@echo off
CALL "D:\Bitnami\REDMIN~1.3-1\scripts\setenv.bat"
D:
cd "D:\Bitnami\redmine-3.4.3-1"
START "Bitnami Redmine Stack Environment" cmd
mysqlをコピーする
mysqldump -u MySQLユーザー名 -pMySQLパスワード Redmineデータベース名 > データ出力先ファイル名
- テーブルロックを掛けずにバックアップ
http://blog.seeds-std.co.jp/entry/3405.html
バックアップ中に更新が掛かって整合性が壊れないように、innodbで使える--single-transactionオプションを指定します。
現行bitnamiではすべてのテーブルがinnodbになっていることは確認しました。
(MySQLサーバのストレージエンジン確認方法)
- Mysqlパスワードの確認(windowsでRedmine (bitnami) バックアップとリストア)
{インスコフォルダ}\apps\redmine\htdocs\config\database.yml
production:
adapter: mysql2
database: bitnami_redmine
host: 127.0.0.1
username: bitnami ← ユーザ名
password: XXXXXXXX ← パスワード
encoding: utf8
添付ファイルの保管フォルダを階層ごと保存する
- 高度なコピーを実現してくれるrobocopyコマンド
- オプション
- /MIR ブランクフォルダも含めて階層ごとミラーリングコピー(コピー元に存在しないファイルはコピー先から削除)
- /XA:SH 指定した属性のファイルを対象から除外(S:システム、H:隠し)
- /XO 古いファイルを対象から除外
最終物
@echo off
CALL "D:\Bitnami\REDMIN~1.3-1\scripts\setenv.bat"
D:
cd "D:\Bitnami\redmine-3.4.3-1"
mysqldump -x -u bitnami -pXXXXXXXXX --single-transaction bitnami_redmine > d:\redmine_backup\mysqldump
Robocopy .\apps\redmine\htdocs\files\ d:\redmine_backup\files\ /MIR /XA:SH /XO
pause
exit