このトピックでは、Database Autonomy Service (DAS) のロック分析機能を使用して、メタデータのロック待機とトランザクションのブロックを分析する方法について説明します。
次の図に示されているデータはテストデータとして使用され、参照のみのためです。 実際のシナリオでは、スレッドIDやSQL文などのパラメーターは、実際のデータベース環境によって異なります。
前提条件
データベースインスタンスは、次のいずれかのデータベースエンジンを実行します。
ApsaraDB RDS for MySQL
PolarDB for MySQL
データベースインスタンスがDASに接続されており、正常なアクセス 状態です。 詳細については、「データベースインスタンスのDASへの接続」をご参照ください。
DAS Economy EditionまたはDAS Enterprise Editionが有効になっています。
重要DAS Economy EditionおよびDAS Enterprise Editionは、特定のリージョンでのみ使用できます。 詳細については、「DASのエディションとサポートされている機能」トピックのサポートされているデータベースとリージョンのセクションを参照してください。
DAS Economy EditionまたはDAS Enterprise Editionを有効にする方法の詳細については、「DAS Economy EditionおよびDAS Enterprise Editionの有効化と管理」トピックのDAS Economy EditionおよびDAS Enterprise Editionの有効化セクションを参照してください。
ロックタイプ
メタデータロック分析
データ分析: DASはロック待機関係を推定し、
information_schema.processlist
などのテーブルのデータに基づいて対応するダイアグラムを生成します。
トランザクションブロック分析
重要MySQL 5.6を実行するPolarDB for MySQLクラスターでは、トランザクションブロック分析機能はサポートされていません。
データ分析: DASは、トランザクションブロック関係を分析し、
information_schema.processlist
およびinformation_schema.innodb_trx
テーブル、および次のテーブルのデータに基づいて、対応するダイアグラムを生成します。ApsaraDB RDS for MySQLの5.6と5.7:
information_schema.innodb_lock_waits
PolarDB for MySQL 5.7:
information_schema.innodb_lock_waits
ApsaraDB RDS for MySQLおよびPolarDB for MySQL 8.0:
performance_schema.data_lock_waits
パラメーター設定: データベースインスタンスがApsaraDB RDS for MySQL 8.0インスタンスまたはPolarDB for MySQL 8.0クラスターの場合、
performance_schema
パラメーターをONに設定する必要があります。 データベースインスタンスのパラメーターを変更する方法の詳細については、データベースインスタンスのデータベースエンジンに基づいて次のいずれかのトピックを参照してください。ApsaraDB RDS for MySQL: インスタンスパラメーターの変更
PolarDB for MySQL: クラスターとノードパラメーターの設定
トリガーモード
ロック分析-トリガー分析: [ロック分析] ページで、他のロック分析を手動でトリガーできます。
インスタンスセッション-自動分析: [インスタンスセッション] ページを更新すると、他のロック分析が自動的にトリガーされます。
ロック分析-トリガー分析
分析タスクの作成
にログインします。DASコンソール.
左側のナビゲーションウィンドウで、インスタンスモニター.
表示されるページで、管理するデータベースインスタンスを見つけ、インスタンスIDをクリックします。 インスタンス詳細ページが表示されます。
左側のナビゲーションウィンドウで、[ロック分析] をクリックします。 [その他のロック分析] セクションで、[分析タスクの作成] をクリックします。
詳細を見る
分析結果の前にあるをクリックして、メタデータロック待機およびトランザクションブロック分析情報を表示します。
トランザクションロックの詳細
トランザクションロックの [操作] 列で、[詳細の表示] をクリックします。 トランザクションロックの詳細は、次のいずれかの方法を使用して表示されます。
List: ブロックされたトランザクションの詳細をトランザクションロックリストに表示します。
View: 可視化されたトランザクション待機関係を使用してロックの詳細を表示します。 対応するセッションタイルをクリックすると、下部にセッションの詳細が表示されます。
メタデータロックの詳細
メタデータロックの [操作] 列で [詳細の表示] をクリックします。 メタデータロックのビューが表示されます。 対応するセッションタイルをクリックすると、対応するセッションの詳細が下部に表示されます。 関連するセッションに対してKILL操作を実行することもできます。
SQL Explorerと監査を使用したその他のロック分析
不審なセッションがスリープ状態にあり、SQL情報が利用可能でない場合、そのセッションに対してトランザクションを有効にすることができる。 関連するSQL文は実行されますが、トランザクションはコミットまたはロールバックされません。 この場合、左側のナビゲーションウィンドウで [SQLエクスプローラーと監査] をクリックします。 [監査] タブで、[高度なクエリの有効化] をクリックし、疑わしいセッションのスレッドIDを入力して、セッションで実行されたSQL文をクエリおよび分析します。 この例では、トランザクションがコミットされていないため、ロック待ちが発生します。
インスタンスセッション-自動分析
手順
にログインします。DASコンソール.
左側のナビゲーションウィンドウで、インスタンスモニター.
表示されるページで、管理するデータベースインスタンスを見つけ、インスタンスIDをクリックします。 インスタンス詳細ページが表示されます。
左側のナビゲーションウィンドウで、[インスタンスセッション] をクリックします。 [セッション管理] タブで、他のロック分析が自動的にトリガーされます。 分析結果は、ページの右上隅に表示されます。
[インスタンスセッション] ページで詳細を表示する
[インスタンスセッション] ページで、ロック待ちが存在する場合は [詳細の表示] をクリックします。 表示されるページで、トランザクションロックとメタデータロックを表示できます。
トランザクションロックの詳細
トランザクションロックの [操作] 列で、[詳細の表示] をクリックします。 トランザクションロックの詳細は、「ロック分析-トリガー分析」セクションで詳細を表示するのと同じ方法で表示できます。 詳細については、「ロック分析-トリガー分析」をご参照ください。
メタデータロックの詳細
メタデータロックの [操作] 列で [詳細の表示] をクリックします。 メタデータロックの詳細は、「ロック分析-トリガー分析」セクションで詳細を表示するのと同じ方法で表示できます。 詳細については、このトピックの「ロック分析-トリガー分析」セクションのメタデータロックの詳細サブセクションを参照してください。
ロック分析ページの詳細を表示する
[ロック分析] ページで、分析結果の前にあるをクリックして、[インスタンスセッション] ページで自動的にトリガーされた他のロック分析の履歴統計を表示します。 「ロック分析-トリガー分析」セクションで詳細を表示するのと同じ方法で情報を表示できます。 詳細については、このトピックの「ロック分析-トリガー分析」セクションの詳細サブセクションを参照してください。