MySQL: 2008年4月アーカイブ
MySQLでバックアップをとる方法をまとめておきます。結構大切ですからね。
今回はオンラインバックアップとロールフォワードリカバリについてです。
私はMySQLのサイトは以下でバックアップととっています。
cronでバックアップをとる時は、以下のようなシェルを作成します。
名前は、mysql-dump-backup.shとかにしています。
ロールフォワードリカバリはバイナリログで行うのですが、とる場合ととらない場合があります。
一応基準としては、自分以外の人にもサービスを提供している場合は念のためとっておきます。
my.cnfに以下を追加するとバイナリログの取得ができます。
log-bin=/var/lib/mysql/log/mysql-host
sync_binlog=1
設定例は以下の通り
以下のページを参考にしました
MySQL バックアップ・リストア手順 ? [WordPress] Tips Community
今回はオンラインバックアップとロールフォワードリカバリについてです。
私はMySQLのサイトは以下でバックアップととっています。
# mysqldump --user=root --password=password --single-transaction --master-data=2
--flush-logs --hex-blob --default-character-set=utf8 database >
/home/user/backup/mysql/mysql-dump.sql
cronでバックアップをとる時は、以下のようなシェルを作成します。
名前は、mysql-dump-backup.shとかにしています。
#!/bin/sh backupdate=`date +%Y%m%d%H%M` mysqldump --user=root --password=password --single-transaction --master-data=2
--flush-logs --hex-blob --default-character-set=utf8 database >
/home/user/backup/mysql/mysql-dump_$backupdate.sql
ロールフォワードリカバリはバイナリログで行うのですが、とる場合ととらない場合があります。
一応基準としては、自分以外の人にもサービスを提供している場合は念のためとっておきます。
my.cnfに以下を追加するとバイナリログの取得ができます。
log-bin=/var/lib/mysql/log/mysql-host
sync_binlog=1
設定例は以下の通り
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-bin=/var/lib/mysql/blog/mysql-host sync_binlog=1
以下のページを参考にしました
MySQL バックアップ・リストア手順 ? [WordPress] Tips Community
WebアプリケーションをつくるときにDBにMySQLを使うことが多いのですが、すぐにできるMySQLのパフォーマンス確認方法です。以下手順で簡単にできます。
1) スロークエリログを設定する
/etc/my.cnfに以下記載を設定する
2) スロークエリログを確認する
これで、3秒以上時間がかかっているSQLや、フルスキャンしているSQLがログに出力されるのでパフォーマンス改善が検討できます。
1) スロークエリログを設定する
/etc/my.cnfに以下記載を設定する
[mysqld] <<<省略>>> log-slow-queries=/var/log/mysql/myslow.log long-query-time=3 log-queries-not-using-indexes
2) スロークエリログを確認する
$ less /var/log/mysql/myslow.log $ mysqldumpslow /var/log/mysql/myslow.log
これで、3秒以上時間がかかっているSQLや、フルスキャンしているSQLがログに出力されるのでパフォーマンス改善が検討できます。

