MariaDBのログの概要

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...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.