harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

[MySQL]ログの種類[メモ]

   


おもに自分向けメモ…

ログの種類

1.エラーログ

実行エラーログは、起動、停止及び実行時のエラーが
MySQLディレクトリに"ホスト名.err"というファイル名で保管されます。
MySQLで障害発生時に障害特定の情報を得ることが出来ます。

  • my.cnf設定例
    [mysqld]
    log-error=myerror.log
    log-warnings=1

2.クエリーログ

全てのSQL文(接続を含む)を
MySQLディレクトリに"ホスト名.log"というファイル名で保管されます。
クエリログはクエリを受け取った時点でログを書き込みます。

  • デバッグ用途に有効に使えます。
  • サーバに大きな負荷がかかることと、ログファイルサイズが大きくなることから
    デバッグ時以外は利用すべきではないでしょう。
  • my.cnf設定例
    [mysqld]
    log=myquery.log

3.スロークエリーログ

指定した時間(秒)に処理が終了しなかったSQL文とINDEXを使用しなかったSQL文を
MySQLディレクトリに"ホスト名.show.log"というファイル名で保管されます。

  • 実行に時間が掛かるクエリを見つけ出し、最適化の方法を考えるために有効なログです。
  • my.cnf設定例
    [mysqld]
    log-slow-queries=myslow.log
    long-query-time=30
    log-queries-not-using-indexes
    log-slow-admin-statements

4.バイナリログ/トランザクションログ

MySQLに対する全てのデータベースの更新情報を
MySQLディレクトリに"ホスト名.bin.nnnnnn"というファイル名で保管されます。(nnnnnn:6桁のシーケンス番号)

  • バイナリデータで記録されるので、閲覧の際はmysqlbinlogコマンドを使用します。
  • バイナリログの主な目的は、リストア時に、データベースに対して可能な限りバックアップ後の更新を実行できるようにすることです。
  • レプリケーション環境において、マスターの更新処理をスレーブに反映させるためにも利用されます。
  • サーバのパフォーマンスが約1%程度低下することがあります。
  • my.cnf設定例
    [mysqld]
    log-bin=mysql-bin
    log-bin-index=mybin.index
    max-binlog-size=1G
    expire-log-days=7
    binlog-do-db=slaes
    binlog-do-db=prices

参考サイト

お世話になっております!


 - DB, MySQL, 備忘録