世の中、バックアップしたいことだらけです。
なんか最近、某CMSツール使っていたら、謎のテーブル破損?っぽいものに遭遇してしまって、破損した該当テーブルはどれかわかったものの、check table も応答しないし、repair table も応答しない・・・なんて状況に遭遇してしまうと、
「ぁぁ、やはり世の中はバックアップ無しには語れないなぁ。」
というアンニュイな昼下がりになってしまうわけですね。
とりあえず試してみましょう。
1.アーカイブをゲットする。
本家に行って、phpMyBackupPro本体と、language files(Japanese)をダウンロードしてみましょう。
http://www.phpmybackuppro.net/
2.phpMyBackupProとlanguage filesを解凍
language filesについては、phpMyBackupPro内のlanguageディレクトリに入れてあげればOKOK。
3.FTPとかでサーバにアップロード。
4.アップロードしたディレクトリに、早速アクセス。
5.「月見蕎麦では月見している気分になれない!」と嘆く。
6.まずは設定
とりあえず、画面は英語だらけなので、ちょっと困ったふりをしながら、「configuration」タブへ。
languageの所を「japanese」に変更して「Save data」で保存。めでたく日本語表示。
「global_conf.php は書き込めません!」と怒られるかもしれませんので、その場合はphpMyBackupPro直下にあるglobal_conf.phpファイルのパーミッションを666とかにしておく。
7.引き続き設定
SQLデータと書かれている箇所の、「MySQLホスト名」やら「MySQLユーザー名」やら「MySQLパスワード」やらを環境に合わせて入れて「データ保存」。
ここらで、なんとなく「開始する」タブへ移動してみると、
「ディレクトリ「export/」が書き込めません!」とか怒られる場合があります。悲しすぎます。
ここは一旦相手の要求を飲み、直下にあるexportディレクトリのパーミッションを777なんかにしておく。
8.試しに手動バックアップ
まず試しに「バックアップ」タブへ移動し、手動でバックアップを取ってみる。
設定が正しく行われていれば、「バックアップするデータベースを選択する」という欄にデータベース名一覧が表示されているので、適宜選択。
一応補足としては、、、
「テーブルをエクスポートする」にチェックを入れておくと、create table が生成される。
「データをエクスポートする」にチェックを入れておくと、insert into が生成される。
「「drop table」を付加する」は、そのまんまですね。まるっとリストアしたい時なんかは必要。
「バックアップ」クリックでバックアップ完了!簡単ですねー。
9.[インポート]タブに移動してみる
さっきのバックアップが追加されています。
試しにダウンロードしてみるとSQLがぎっしりかかれていますので、他の環境に移す用にも便利ですね。(それだけだったらphpMyAdminでも良いわけですが。)
10.さていよいよメインの「定期的に自動バックアップ」の設定をしてみる
○crontabで自動バックアップ
crontabに、
/usr/local/bin/php /usr/local/apache/htdocs/phpMyBackupPro/backup.php hoge_db 1 0 0 1
のような感じで登録します。
引数について。
1.PHPの実行パス
2.phpMyBackupPro/backup.phpのパス
3.DB名
4.データのバックアップを行うか
5.drop tableを付与するか
6.gzip圧縮を行うか
7.バックアップファイル置場?ちょっと調査不足。
○crontabが仕込めない場合は・・・?
http経由(ブラウザでURLアクセス等)で簡単にバックアップを取る設定方法が用意されているようです。
「スケジュールバックアップ」に移動してみます。
試しに、、、
「バックアップ期間を選択する」で「At each call」(連続起動を制限する。ちなみに At each call は制限なし)
「Select directory where the php file will be placed」で「../phpMyBackupPro/」(これは、phpMyBackupProのプログラム置場を指定する箇所)
「バックアップするデータベースを選択する」は適宜選択。
オプションチェックは適宜選択。
「スクリプトを表示する」をクリックすると、画面遷移してスクリプトが表示されています。
このプログラムを動かすとバックアップが行われる、ということっぽいですね。
下の方にこのスクリプトを保存するファイル名が選択出来るようなので、試しに
hoge.php
で「データ保存」
↑
ここで、
「Can't write in ../phpMyBackupPro/hoge.php」とかでちゃう場合は、一旦「phpMyBackupPro」ディレクトリ自体のパーミッションを777に変更する(あとで戻そう!)とか、手動でスクリプトをアップする。
↓
試しに、上記で作成したphpファイルにブラウザから直接アクセスしてみる。
Ext : http://www.hogehoge.net/phpMyBackupPro/hoge.php
そして、処理が完了したと思われたら、phpMyBackupProに戻って「インポート」タブへ移動。
無事に1行追加されていればOKOK。
文章にすると、すんごい面倒くさそう。。。
まあ、思ったより設定自体は簡単です。
しかし、テーブル単位でのバックアップは出来ませんので注意!!
私の場合ですが、郵便番号辞書マスターが大きすぎる為、ホスティングサーバ上で「そんなにメモリ使うなハゲ!」エラー(Fatal error: Allowed memory size of・・・なんちゃら、の奴ですね。)が出てしまって、悲しすぎて夜も眠れなくなりました。
なので、かなり強引な回避策としては・・・・
functions.inc.php の593行目辺りの、
while($row=mysql_fetch_array($res)) {
のループ中の、
$all_tables[]=$row;
の前に、
とかすると、まあ除外出来ます。
本当に強引過ぎる方法ですけどね・・・・・
すぐ必要だったので仕方無いのです。にんともかんとも。
