SQL

MySQL自動バックアップと最適化

2012年03月12日
昨日で東日本大震災からちょうど一年たちました。あっという間だった気もしますし、やっとという気もします。
私は被災したわけではありませんが、1年前は激しい頭痛と吐き気に襲われ、眠れなかったのを覚えています。
実際に被災された方は、どのようにお感じておられるのでしょうか。一人でも多くの方が、少しでも早く希望を持って生きられるようになることを願ってやみません。
そのために、自分には何ができるのか。忘れないように、ずっと考え続けていかなければと肝に銘じました。
また、TVを通してですが、被災地で力強く立ち上がっておられる方を拝見すると、私も負けてはいられない、と気持ちが奮い立つこともしばしばあります。私の方が励まされてしまいます。


さて、話は変わり、MySQLのまとめです。
一応DB運用ができるようになったので、DBのバックアップと最適化ができるようにしました。

バックアップ
Telnet接続して
mysqldumpのパス -u ユーザーID --password=’パスワード’ --opt データベース名 > BKファイルへのパス
となります。
MySQLの定期的バックアップ
でも、このコマンドにはユーザーIDとパスワードが含まれています。これを隠したいので方法を探してみました。
確かPostgreSQLのときには、パスワードファイルを作った記憶があります。おそらくMySQLでも同じようにできるはずです。
MySQL 5.1 リファレンスマニュアル
どうやら【.my.cnf】に記述すれば自動で読んでくれるようです。
調べてみると、すでに作成されていました。
ユーザーIDとパスワードを抜いて動かしてみます。
mysqldumpへのパス --opt データベース名 > BKファイルへのパス
これでOKです。
参考にしたサイトは、バックアップスクリプトを書いて、それをcronで実行する例ばかりだったのですが、上のコマンドをcronで実行しても動きます。
私の場合、ファイル名を変えて履歴を取っておくというようなことはとりあえず必要ないので、単純にバックアップファイルを上書きしていきます。

最適化
MySQLの最適化を参考にしました。
私の場合、【mysqlcheck -o -u ユーザー名 -p パスワード データベース名】です。
バックアップ時と同様に、ユーザーIDとパスワードを抜いて、
mysqlcheckへのパス -o データベース名
となります。