MySQL: 2008年4月アーカイブ

MySQLでバックアップ(mysqldump、バイナリログ)

   ブックマークに追加する
MySQLでバックアップをとる方法をまとめておきます。結構大切ですからね。
今回はオンラインバックアップとロールフォワードリカバリについてです。

私は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

MySQLでスロークエリログを出力する方法

   ブックマークに追加する
WebアプリケーションをつくるときにDBにMySQLを使うことが多いのですが、すぐにできるMySQLのパフォーマンス確認方法です。以下手順で簡単にできます。

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がログに出力されるのでパフォーマンス改善が検討できます。

このアーカイブについて

このページには、2008年4月以降に書かれたブログ記事のうちMySQLカテゴリに属しているものが含まれています。

前のアーカイブはMySQL: 2008年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

MySQL: 2008年4月: Monthly Archives

あわせて読みたいブログパーツ
フィードメーター - ウェブ-HACKS 「とりあえずやってみよう!」ブログ   
track feed
  • SEO対策 
  • _ 
  • _ 
  •  
  •  

このブログはクリエイティブ・コモンズでライセンスされています。