MySQL の一般的なログの概要

MySQL の一般的なログの概要

序文:

MySQL システムには、さまざまな種類のログが存在します。さまざまなログにはそれぞれ独自の用途があります。ログを分析することで、データベースのパフォーマンスを最適化したり、トラブルシューティングを行ったり、データを復元したりすることもできます。これらのさまざまな種類のログは、データベースをより明確に理解するのに役立ちます。また、日常の学習や運用および保守でもこれらのログを扱います。このセクションでは、MySQL データベースのいくつかの一般的なログの機能と管理方法を紹介します。

1. エラーログ

エラー ログには、mysqld の起動と停止に関連する情報、およびサーバー操作中に発生したエラーと警告が記録されます。データベースが予期せずクラッシュしたり、その他のエラーが発生した場合は、エラー ログを確認する必要があります。

log_error パラメータは、エラー ログをファイルに書き込むかどうかと、そのファイル名を制御します。デフォルトでは、エラー ログは端末の標準出力 stderr に書き込まれます。もちろん、エラー ログ ファイルの場所と名前をカスタマイズするには、log_error パラメータを指定することをお勧めします。

# エラーログの場所と名前を指定する vim /etc/my.cnf 
[mysqld] 
log_error = /data/mysql/logs/error.log

関連する構成変数の説明:
log_error={1 | 0 | /PATH/TO/ERROR_LOG_FILENAME}
エラー ログ ファイルを定義します。スコープはグローバルまたはセッション レベルであり、動的ではない変数です。

2. スロークエリログ

スロー クエリ ログは、実行時間が long_query_time 変数で定義された時間を超えるクエリ ステートメントを記録するために使用されます。スロークエリログを使用すると、実行効率が低いクエリステートメントを見つけて最適化することができます。

遅いクエリに関連するいくつかのパラメータは次のとおりです。

  1. slow_query_log: スロークエリログを有効にするかどうか。デフォルトは 0 で、0、1 に設定できます。
  2. slow_query_log_file: スロークエリログの場所と名前を指定します。デフォルト値は host_name-slow.log です。絶対パスを指定できます。
  3. long_query_time: 低速クエリ実行時間のしきい値。時間がこのしきい値を超えると、クエリが記録されます。デフォルト値は 10 (秒単位) です。
  4. log_output: スロークエリログの出力先。デフォルト値は file で、ログがファイルに出力されることを意味します。

デフォルトでは、スロー クエリ ログは有効になっていません。通常、低速 SQL の最適化を容易にするために、これを有効にすることをお勧めします。構成ファイルには次のパラメータを追加できます。

# スロークエリログ関連の設定は、実際の状況に応じて vim /etc/my.cnf を変更できます。 
[mysqld] 
遅いクエリログ = 1
slow_query_log_file = /data/mysql/logs/slow.log
長いクエリ時間 = 3
log_output = ファイル

3. 一般クエリログ(一般ログ)

一般クエリ ログ (ユニバーサル クエリ ログとも呼ばれる) は、MySQL で最も詳細なログです。このログには、mysqld の関連するすべての操作が記録されます。クライアントが接続または切断されると、サーバーはこのログに情報を書き込み、クライアントから受信した各 SQL ステートメントを記録します。一般クエリ ログは、クライアントにバグがある疑いがあり、クライアントが mysqld に送信した内容を正確に知りたい場合に役立ちます。

デフォルトでは、一般ログは無効になっています。一般クエリ ログを有効にするとディスク I/O が大幅に増加するため、デバッグ目的以外では一般クエリ ログを有効にすることはお勧めしません。関連するパラメータ構成は次のように紹介されています。

# 一般的なログ関連の設定 vim /etc/my.cnf 
[mysqld]
general_log = 0 //デフォルト値は0で、無効であることを意味します。1に設定できます
general_log_file = /data/mysql/logs/general.log //ログの場所と名前を指定します

4. バイナリログ(binlog)

バイナリログに関しては、以前紹介した記事がありました。データベースによって実行されたすべての DDL および DML ステートメント (select や show などのデータ クエリ ステートメントを除く) を記録し、イベントの形式で記録してバイナリ ファイルに保存します。データの回復やマスタースレーブレプリケーションによく使用されます。

binlog に関連するいくつかのパラメータは次のとおりです。

  • log_bin: binlog が有効かどうかとファイル名を指定します。
  • server_id: サーバーの一意の ID を指定します。binlog を有効にするには、このパラメータを設定する必要があります。
  • binlog_format: binlog モードを指定します。ROW に設定することをお勧めします。
  • max_binlog_size: 単一のバイナリ ログのサイズを制御します。現在のログ ファイルのサイズがこの変数を超えると、スイッチ アクションが実行されます。
  • expire_logs_days: バイナリ ログ ファイルを保持する日数を制御します。デフォルト値は 0 で、自動的に削除されないことを示します。0 ~ 99 に設定できます。

Binlog はデフォルトでは有効になっていませんが、特にマスターとスレーブの同期を行う場合は、有効にすることをお勧めします。

#binlog 関連の設定 vim /etc/my.cnf 
[mysqld]
サーバーID = 1003306
ログ bin = /data/mysql/logs/binlog
binlog_format = 行
有効期限切れログ日数 = 15

5. リレーログ

リレー ログは、マスター スレーブ レプリケーション アーキテクチャのスレーブ サーバーで使用されます。スレーブ サーバーのスレーブ プロセスは、マスター サーバーからバイナリ ログの内容を取得し、それをリレー ログに書き込みます。次に、IO プロセスはリレー ログ内のステートメントを読み取って実行します。

リレー ログ関連のパラメータは、通常、スレーブ データベースで設定されます。関連するパラメータをいくつか紹介します。

  • relay_log: リレー ログの場所と名前を定義します。
  • relay_log_purge : 不要になったリレー ログを自動的に消去するかどうか。デフォルト値は 1 (有効) です。
  • relay_log_recovery: スレーブがダウンしたときにリレー ログが破損し、一部のリレー ログが処理されなくなった場合、実行されていないリレー ログはすべて自動的に破棄され、ログはマスターから再度取得されるため、リレー ログの整合性が確保されます。この機能はデフォルトでは無効になっています。relay_log_recovery の値を 1 に設定することで有効にできます。

リレー ログのデフォルトの場所は、データ ファイルのディレクトリです。ファイル名は host_name-relay-bin です。ファイルの場所と名前はカスタマイズできます。

# リレーログ関連の設定は、ライブラリ側から vim で設定します /etc/my.cnf 
[mysqld]
リレーログ = /data/mysql/logs/リレービン
リレーログパージ = 1
リレーログリカバリ = 1

要約:

この記事では主に、MySQL におけるいくつかの種類のログの目的と設定方法について説明します。絶対パスを指定しない場合、上記の種類のログはデフォルトでデータ ディレクトリに保存されることに注意してください。これらのログを保存するための専用の新しいログ ディレクトリを作成することもできます。まだ説明していない redo ログと undo ログがあるので、次の記事に残しておきます。

これで、MySQL の一般的なログに関するこの記事は終了です。MySQL の一般的なログに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLのREDOログ(リドゥログ)とロールバックログ(アンドゥログ)の詳しい説明
  • MySQL オンラインリカバリ UNDO テーブルスペース 実戦記録
  • MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal
  • MySQLスローログクエリの詳細な説明
  • MYSQL SERVER のログファイルを縮小する方法
  • MySQLトランザクションとMySQLログの詳細な説明
  • MySQL ログトリガー実装コード
  • MySQL 5.7 のスロークエリログの時間がシステム時間より 8 時間遅れている理由の詳細な説明
  • MySQLデータベースのbinlogクリーンアップコマンドの詳細な説明
  • MySQL でのログインを取り消す

<<:  JavaScriptの動作メカニズムの詳細な説明とイベントループについての簡単な説明

>>:  IDEA で Linux コマンドを使用する方法

推薦する

MySQL 5.7.9 シャットダウン構文例の詳細な説明

mysql-5.7.9 では、ついにシャットダウン構文が提供されます。以前は、MySQL データベー...

Vue フロントエンド開発における階層的にネストされたコンポーネント間の通信の詳細な説明

目次序文例まとめ序文Vue の親子コンポーネントは、props を通じて親コンポーネントの値を子コン...

VUEトークンの無効化プロセスの詳細な説明

目次ターゲット思考分析コード着陸要約するターゲットトークンの有効期限切れシナリオの処理トークンは、ユ...

MySQL プロセス制御 IF()、IFNULL()、NULLIF()、ISNULL() 関数

MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...

MySQL IFNULL判定問題の解決方法

問題: mybatis によって返される null 型のデータが消え、フロントエンドの表示にエラーが...

MySql8.0 のトランザクション分離レベルエラーの問題を解決する

目次MySql8.0 トランザクション分離レベルエラーの表示質問コマンドは次のように変更されますMy...

Mysql マルチテーブル結合クエリの実行の詳細について簡単に説明します。

まず、このブログのケースデモンストレーション テーブルを作成します。 create table a(...

VueはEChartsを使用して折れ線グラフと円グラフを実装します

バックエンド管理プロジェクトを開発する場合、バックエンドのユーザーデータをカウントし、折れ線グラフや...

現在使用されている設定ファイル my.cnf を表示する mysql メソッド (推奨)

my.cnfは、MySQL の起動時に読み込まれる設定ファイルです。通常は MySQL インストー...

Vue 組み込みコンポーネントのキープアライブでの LRU アルゴリズムの使用

目次Vue の keep-alive 組み込みコンポーネントの使用でもこのアルゴリズムが使用されます...

Windows 10 インストール vmware14 チュートリアル図

ソフトウェアのダウンロードソフトウェアのダウンロード リンク: https://pan.baidu....

CSS カウンターとコンテンツの概要

コンテンツ プロパティは CSS 2.1 で導入され、:before および :after 疑似要素...

要素のフォームコンポーネントに関する注意事項

要素フォームとコード表示詳細はエレメントフォーム公式サイトをご覧ください構造と機能の分析紹介とソース...

Java+Tomcat 環境の展開とインストールのプロセス図

次に、Centos7 に Java+Tomcat をインストールします。インターネット上には多くの記...

MySQL 8.0.20 のインストールと設定方法のグラフィックチュートリアル

MySQLのダウンロードとインストール(バージョン8.0.20)のチュートリアルは参考までに、具体的...