ホームページ  >  記事  >  データベース  >  MySQLの運用保守ログ管理

MySQLの運用保守ログ管理

齐天大圣
齐天大圣オリジナル
2020-06-01 07:53:041628ブラウズ

通常、成熟したソフトウェアには独自のログ ファイルがあります。これらのログを使用して、問題を迅速に特定します。 Mysqlでは、ログが次のカテゴリーに分かれています:

  • スロークエリログ SQLの実行時間が設定値を超えた場合に記録されます

  • エラー ログ。mysql の開始、停止、または実行時にエラーが発生すると、エラー ログに記録されます。

  • バイナリ ログ。このログには、変更された SQL ステートメントが記録されます。データベース データ。彼を通じて、Mysql データを復元できます。

  • クエリ ログ。オンにすると、クエリ SQL が記録されます。

今日は、スロー クエリ、エラー ログ、クエリ ログ、バイナリ ログ ファイルについて説明します。これらについては、後ほど新しい記事で詳しく説明します。

エラー ログ

エラー ログには、Mysql の起動時と停止時に発生する問題や、Mysql の動作中に発生する重大な問題が記録されます。 。 'log_err%'; のような show 変数を使用して、エラー ログ ファイルの場所を表示できます。

mysql> show variables like 'log_err%';
+---------------------+-------------------------------+
| Variable_name       | Value                         |
+---------------------+-------------------------------+
| log_error           | ./iZbp171edtq2kx5iy0xufeZ.err |
| log_error_verbosity | 3                             |
+---------------------+-------------------------------+
2 rows in set (0.01 sec)

エラー ログは、デフォルトでファイル名としてホスト名、サフィックスとして err を使用し、mysql ディレクトリの下の /var ディレクトリに保存されます。これを変更したい場合は、構成ファイル内の log_error 項目を変更できます。相対パスまたは絶対パスを使用できます。相対パスを使用する場合はエラー ログ ファイル名のみを変更でき、絶対パスを使用する場合はエラー ログが保存される場所を変更できます。

エラー ログの表示も非常に簡単で、cat または vim を使用して表示するだけです。

一般クエリ ログ

一般クエリ ログはすべてのユーザー操作を記録するため、通常は大きなスペースを占有し、通常は日常的に使用されます。運用および保守のため有効にはならず、デフォルトではログも閉じられます。これを有効にしたい場合は、構成ファイルにログ オプションを追加できます。

スロー クエリ ログ

スロー クエリは、SQL の問題をトラブルシューティングするための非常に優れたツールです。多くの場合、SQL が原因で問題が発生します。システムがスムーズに動作しない。作成者は以前、非常に複雑なクエリ ステートメントを使用してこの間違いを犯しており、そのステートメントが期限切れになるとすぐにシステムが 502 を取得しました。少し前に、dedecms を使用していた会社の古いプロジェクトにも同様の問題があり、データ量が一定のレベルに達すると、スロークエリが大量に発生し、システム全体の CPU がいっぱいになることがわかりました。したがって、スロー クエリ ログを頻繁にチェックして SQL の問題を見つける必要があります。

#スロークエリ設定項目

    ##slow-query-log={0|off|1|on} をオンにするかどうかスロー クエリ ログ関数で
  • #slow-query-time=10 設定されたしきい値 (秒単位) は浮動小数点数をサポートします。 SQLの実行時間がこの値を超えると、スロークエリログに記録されます。 0 に設定すると、すべてのクエリが記録されます。
  • slow_query_log_file=/mydata/data/hostname-slow.log スロー クエリ ログの場所とファイル名
  • log_queries_not_using_indexes=OFF この項目は、インデックスを使用しないクエリもスロー クエリ ログに記録されることを示します。

ケース次に、mysql スロー クエリ ログをオンにして時間を 0 に設定し、すべてを記録します。 SQL。次に、スロークエリのログがどのようなものかを見てみましょう。

Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 2020-05-31T12:00:01.895700Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.000170  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
use blog;
SET timestamp=1590926401;
SET NAMES utf8mb4;
# Time: 2020-05-31T12:00:01.902684Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.006914  Lock_time: 0.006529 Rows_sent: 0  Rows_examined: 120
SET timestamp=1590926401;
SELECT * FROM knowledge 
            WHERE is_delete=0 AND star < 5 AND show_time <= 1590854400   ORDER BY  show_time ASC 
            LIMIT 1;

主に Query_time 行を確認します

    Query_time: クエリ時間
  • Lock_time: ロック テーブル時間
  • Rows_sent: 取得したデータ行
  • Rows_examined: スキャンしたデータ行

以上がMySQLの運用保守ログ管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。