●連載記事 簡単自動バックアップマニュアル1!ファーストサーバのような突然のデータ消失に備える!
簡単自動バックアップマニュアル2!データベースも自動バックアップ
本記事は連載記事です。関連する記事は上のリンクからご覧下さい。
目次
データベース(MySQL)の自動バックアップ概要
phpMyBackupProというサーバで動作するツールを使用します。バックアップしたデータは、任意のディレクトリ保存、メール添付送信、他サーバーへFTP転送とさまざまな設定が可能です。便利ですよ-。
基本的な考え方は、phpMyBackupProを使って任意のフォルダーに、データベースのバックアップファイルを保存し、そのファイルを前回のFFFTPによる自動バックアップによって、PCにダウンロードするという流れになります。
phpMyBackupProのインストール
phpMyBackupPro 本家
phpMyBackupProを上のページからダウンロードしてください。今現在なぜか日本語化するファイルが本家にありませんので、日本語でphpMyBackupProを使用したい人は、下のリンクよりphpMyBackupPro日本語対応版をインストールしましょう!
phpMyBackupPro日本語対応版 – ケイムズカンパニー
ダウンロードが終わりましたら、解凍後に出てきた「phpMyBackupPro」フォルダを、適当なサーバーにをアップロードして下さい。
phpMyBackupProの設定
「phpMyBackupPro」フォルダにアップロードが完了したら、ブラウザでアクセスしましょう。
アドレスは下記のようになります。
http://(任意のアドレス)/phpMyBackupPro/
アクセス直後はメニューなどは英語の設定だと思いますので、まずは日本語に変更しましょう。上部のメニューより、「configuration」をクリックしてください。続いて、「English」→「Japanese」に変更し、最後に下の「Save data」をクリックして下さい。これで日本語の設定になります。
この位置にデータベースの情報を入力します。これで、phpMyBackupPro側の準備は完了です。上部メニュー「バックアップ」より、手動のバックアップなどができるようになりました。
上部メニューの「バックアップ」より、データベースを選択して、下部の「バックアップ」ボタンをクリックすると、手動でデータベースがバックアップされます。
手動でバックアップされたかどうかは、上部メニューの「リストア」で確認できます。上の図のように、バックアップがリストに表示されたら成功です。
自動バックアップ cronの設定その1
自動バックアップ実行用にcronの設定をおこないます。これはレンタルサーバー毎に設定の仕方が違いますので、それぞれの方法に従って設定して下さい。
※今回テストに使ったレンタルサーバーはロリポップですが、ロリポップのcronではバックアップが動作しませんでした。ロリポップでは別の方法を検討する必要があります。次の項目「自動バックアップ cronの設定その2」をお試し下さい。
cronで実行させるファイルは、「phpMyBackupPro」フォルダー内の、「backup.php」というファイルです。
実行ファイルパス例: /home/users/0/(ユーザー毎に異なる部分)/web/(任意のパス)/phpMyBackupPro/backup.php (DB名) 1 1 1 1 このようになります。要するにロリポップの場合は、「backup.php」までのフルパスに、引数を設定すればokです。引数は、DB名(データベース名)と、「1 1 1 1」を設定します。それぞれ半角スペースで区切って下さい。
引数の意味: 1番目の引数:バックップしたいDB名
2番目の引数:テーブルをエクスポートする
3番目の引数:データをエクスポートする
4番目の引数:「drop table」を付加する
5番目の引数:gzipで圧縮する
6番目の引数:データの出力先フォルダ(相対パス) バックップしたいDBが複数存在する場合は、1番目の引数を半角カンマで区切って指定できるそうですが、エラーが出るという報告があります。なにも指定しなければ、ファイルの出力先は「phpMyBackupPro」フォルダ内の「export」フォルダになりますが、6番目の引数で出力位置を指定できるようです。
自動バックアップ cronの設定その2
ロリポップのcronではバックアップ実行ファイル「backup.php」が直接動作しなかったため、他の方法を考えます。
「phpMyBackupPro」では、ブラウザでアクセスするとバックアップするファイルが作成できますので、それをphpのfile_get_contents関数を使って読み込むファイルを作成します。その作成されたファイルをcronで定期的にアクセスする方法で、間接的な自動バックアップを実現します。
バックアップ実行ファイル作成
上部メニュー「スケジュールバックアップ」より、下記を設定し「スクリプトを表示する」をクリックします。
バックアップ期間を選択する:「At each call」(アクセスがあった場合すぐバックアップ)
Select directory where the php file will be placed:「../phpMyBackupPro/」(バックアップ実行ファイルの位置)
バックアップするデータベースを選択する:「(任意のDB名)」
任意のファイル名をつけて、「データを保存」をクリックして下さい。ここでは、「autobackup.php」としました。
これで、ブラウザで下記アドレスにアクセスすると、バックアップされる環境ができました。
http://(任意のアドレス)/phpMyBackupPro/autobackup.php
cron設定用ファイル作成
ロリポップでは、前項目で作成した「autobackup.php」を直接cronで動かしてもバックアップされませんので、もう一工夫します。今度はこのファイルを読み込むファイルを作成します。
<?php
file_get_contents('http://(任意のアドレス)/phpMyBackupPro/autobackup.php');
?>
上記のファイルを作成して、ファイル名をつけます。ここでは「dbbackup.php」としました。このファイルをcronで動作させると、自動バックアップの完成です。
最後にPCへダウンロードする設定
ここまでで、サーバーのバックアップを自動で作成する設定が完了しました。しかしまだあくまで、”サーバー上”にバックアップを作成しただけですので、安心できません。
ここでさらに、自動でPCにダウンロードする仕組みを作ります。といっても、サーバー上にファイルが出来ているのですから、前記事のようにFFFTPを使って、PCにダウンロードするように設定すればokです。
例えば、サーバーのバックアップが作成されるフォルダが、
http://(任意のアドレス)/phpMyBackupPro/export/
このようなフォルダであれば、このフォルダがPCにダウンロードされるように、前記事を参考に設定して下さい。
●前回の記事はこちら 簡単自動バックアップマニュアル1!ファーストサーバのような突然のデータ消失に備える!
おわりに これでデータベース(MySQL)のバックアップもできるようになりました。幅広く使われているMySQLに対応できれば、不慣れな人も含めて大多数の人がバックアップ環境を手に入れられるのではないでしょうか。どんなものを使うにしろ、ファイルとして書き出してしまえば、FFFTPで拾うことも出来ますし、いろいろと応用が効くと思いますので、ぜひお試し下さい!
●連載記事 簡単自動バックアップマニュアル1!ファーストサーバのような突然のデータ消失に備える!
簡単自動バックアップマニュアル2!データベースも自動バックアップ
本記事は連載記事です。関連する記事は上のリンクをご覧下さい。
コメント