クラスターで稼働しているMySQLデータベースサーバーが1台か複数かにかかわらず、MySQLサーバーの状態とパフォーマンスをチェックするためにリアルタイムで監視できるパフォーマンス変数の包括的なリストを提供しています。
これらのメトリックのデータにアクセスするために、SQL Diagnostic Managerは監視するMySQLデータベースサーバーそれぞれに専用ユーザーを必要とし、それらのユーザーはSQL Diagnostic Managerが必要とする情報を収集するために適当な権限を持っていなければなりません。
権限
SQL Diagnostic Managerのほとんどの機能は、SQL Diagnostic ManagerがMySQLとのクライアント接続を確立するために使用するMySQLユーザーの権限を一切必要としません。ユーザーを作成するために、特定のグローバル権限やオブジェクト権限を付ける必要はなく、以下のコマンドを使用します。
GRANT USAGE ON *.* TO 'user'@'host';
すべてのSQL Diagnostic Manager機能を完全に有効にするためには、必要とするすべてのデータに確実にアクセスできるようにするために、いくつかの権限を追加する必要があります。
注意
SQL Diagnostic Managerユーザーにすべての機能を許可する例として、以下のデータベース設定<db-config>を参照してください。
セキュリティカウンター
SQL Diagnostic Managerユーザーは、SQL Diagnostic Managerセキュリティカウンターを有効にするためにmysql.userテーブルに対するSELECT権限が必要です。
また、サーバーがskip_show_databases設定変数で起動されている場合、明示的にSHOW DATABASES権限を付与する必要もあります。
レプリケーションカウンター
スレーブからレプリケーションメトリックを取得するためには、スレーブのMySQLユーザーがREPLICATION_CLIENT 権限を持っている必要があります。SUPER権限を使用してこの機能を有効にすることも可能です。
SQL Diagnostic ManagerでMySQLサーバーを登録する時に、レプリケーション情報を含めるためのIs this a Replication Slave? というオプションがあります。サーバーの登録時にYesを設定する必要があります。デフォルト値はNoです。Noに設定すると、SQL Diagnostic Managerはレプリケーションデータ無視します。
サーバー登録ページから接続テストを実行すると、SQL Diagnostic Managerは以下のエラーメッセージを表示します。
Access denied. You need the SUPER/REPLICATION CLIENT privilege for retrieving REPLICATION details!
このエラーは、MySQLサーバーがレプリケーションスレーブではない場合、または、レプリケーションを監視したくない場合、無視してかまいません。
InnoDBデッドロックの監視
MySQLサーバーのバージョンによって、InnoDBストレージエンジンのデッドロックを監視するためにはSUPERまたはPROCESS権限が必要です。
注意
MySQL 5.1.24では、PROCESSを使用してこの機能を有効にできます。古いバージョンでは、SUPERが必要です。
プロセスリスト機能
すべてのユーザーのMySQLサーバープロセスのデータを収集するためには、PROCESS権限を有効にしなければなりません。また、SUPER権限が付与されている場合、SQL Diagnostic Managerで実行中のプロセスを中止(キル)することができます。
processlistのEXPLAINオプションを使用するためには、ユーザーは説明したいステートメントによってアクセスされるオブジェクトに対してSELECTおよびSHOW VIEW権限を与える必要があります。または、もっと単純に、グローバルのSELECT権限を与えます。
注意
ユーザーが必要とされる権限を持っていない場合、SQL Diagnostic Managerは影響を受けるカウンターにN/Aと表示します。そして、MySQLサーバーからそれらのカウンターを取得しようとする試行ごとに、MySQLサーバーエラーのレコードを記録します。その場合、ログがかなり大容量になる可能性があることに注意してください。
パフォーマンススキーマベースのスニッファー
パフォーマンススキーマのデータを収集するためには、SELECT、DROP、UPDATE権限が必要です。
SQL Diagnostic Managerは、SELECT権限を使用して、パフォーマンススキーマテーブルを読み込みます。DROP権限によって、パフォーマンススキーマテーブルを切り捨てることができます。UPDATE権限は、パフォーマンススキーマテーブルのステートメントダイジェストおよびステートメント履歴ログを有効にします。
ログの取得
テーブルに保存されているログ情報を取得するためには、(バージョン5.1以降のMySQLでサポート)、SQL Diagnostic Managerユーザーはログテーブルに対してSELECT権限が必要です。
ステータスのフラッシュ
FLUSH STATUSコマンドを実行するためには、SQL Diagnostic Managerユーザーは RELOAD権限も必要です。