web-dev-qa-db-ja.com

データベースごとのMySQLアクティビティを監視しますか?

サーバーの各データベースのアクティビティを監視する最良の方法は何ですか?

アクティビティをリアルタイムで表示するmtop/mytopを試してみましたが、実行されたすべてのクエリを表示するのはあまり実用的ではありません。

MySQLログをアクティブ化しましたが、データベースごとに分割するオプションはありません。

MySQLサーバーの監視にどのツールを使用していますか?

9
tostinni

1つのインスタンスで複数のデータベースを使用しないようにします。代わりに、サーバーに複数のインスタンスをセットアップし、各インスタンスをデータベース専用にしています。

MySQL Cactiテンプレート は優れた監視ソリューションです。あなたが企業顧客である場合、 MySQL Enterprise Monitor が機能します。また、openarkの mycheckpoint も確認してください。

[〜#〜]編集[〜#〜]
1つのサーバーで複数のインスタンスを設定するためのチュートリアルをいくつか示します。

MySQL Sandbox を使用して、さまざまな設定を自動化することもできます。

4
dabest1

使用しているほとんどのツールがどこからデータを取得しているかを理解する必要があります-SHOW ENGINE INNODB STATUSおよびSHOW GLOBAL STATUS。このデータは、MySQL内のデータベースレベルで分解して使用することはできません。

MySQL 5.5、5.6、およびPercona Serverは、 performance_schemaserstats などの機能を使用して、利用可能な診断を改善する素晴らしい仕事をしてきましたが、GUIは知りません/まだ利用されている/監視ツール。

Percona Serverをインストールして、table_statisticsを確認することをお勧めします。

mysql> SELECT * FROM INFORMATION_SCHEMA.TABLE_STATISTICS
   WHERE TABLE_NAME='tables_priv';
+--------------+-------------------------------+-----------+--------------+------------------------+
| TABLE_SCHEMA | TABLE_NAME                    | ROWS_READ | ROWS_CHANGED | ROWS_CHANGED_X_INDEXES |
+--------------+-------------------------------+-----------+--------------+------------------------+
| mysql        | tables_priv                   |         2 |            0 |                      0 | 
+--------------+-------------------------------+-----------+--------------+------------------------+
3
Morgan Tocker