MariaDBには、何をログに出すか、いつログに出すかを定義する、たくさんの変数があります。

この記事では、さまざまなログの概要を述べ、どのようにログを有効・無効にするかを説明します。

ストレージエンジンも独自のログを持っていることがあるのに注意しましょう。例えばInnoDBは、ロールバックやクラッシュリカバリに使うための、UndoログやRedoログを保持します。このページでは、MariaDBサーバのログのみを取り上げます。

エラーログ

  • 常に有効
  • 基本的にはデータディレクトリ内のファイルに記録されますが、ディストリビューションによっては場所が変わっていることがあります
  • 全ての致命的エラーはここに記録されます
  • log_warningsを設定することで、警告レベルのログも記録できます
  • mysqld_safe--syslogオプションで、システムのsyslogにもメッセージを出すことができます

一般クエリログ

スロークエリログ

バイナリログ

  • --log-binを付けてmysqldを起動すると有効になります
  • 基本的には、レプリケーションのマスタになるマシンで有効にします
  • 主にレプリケーションのために使われ、mysqlbinlogによって、バックアップからの復旧時にデータベースを最新にするのにも使います
  • なにをログに記録するかを指定するのに、--binlog-ignore-db=database_name--binlog-do-db=database_nameを指定することもできます
  • super権限のあるユーザは、 setting SQL_LOG_BINを0にすることで、コネクション単位でログを無効にできます。これが0だと、そのコネクションで行われた変更はスレーブに複製されません。
  • Using and Maintaining the Binary Logに例があります

これから実行するクエリが遅いのが分かっていて、スロークエリログにそれを記録したくないなら

SET LOCAL SLOW_QUERY_LOG=0;

super権限のあるユーザでバッチジョブを実行していて、そのクエリを記録したくないなら(例えばmysqldumpを実行するなど)

SET LOCAL SQL_LOG_OFF=1, LOCAL SLOW_QUERY_LOG=0;

MariaDB 10.1mysqldumpでは、--disable-log-querysを付ければ自動で無効になります。

参考

Comments

Comments loading...