すべてのプロダクト
Search
ドキュメントセンター

Database Autonomy Service:ロック分析

最終更新日:Nov 09, 2025

データベースでロック待ちの問題が発生した場合、ロック分析機能を使用して、デッドロック、トランザクションブロッキング、メタデータロック待ちを視覚的に分析できます。この機能は、これらの問題を迅速に特定して解決し、データベースの安定性を確保するのに役立ちます。

前提条件

  • ターゲットデータベースは、次のいずれかのデータベースエンジンを実行します。

    • ApsaraDB RDS for MySQL

    • セルフマネージド MySQL

    • PolarDB for MySQL

    • PolarDB-X 2.0

  • ターゲットデータベースインスタンスが Database Autonomy Service (DAS) に接続されており、そのステータスが 正常なアクセス です。詳細については、「データベースインスタンスを DAS に接続する」をご参照ください。

注意事項

デッドロック分析機能は、「TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION」という記述を含むデッドロックの分析には使用できません。

特徴

ロック分析機能は、データベースインスタンス上のデッドロック、トランザクションブロッキング、メタデータロック待ちの多次元分析を提供します。

重要

完全なデッドロック分析およびその他のロック分析機能は、ApsaraDB RDS for MySQL および PolarDB for MySQL データベースインスタンスでのみサポートされています。これらの機能を使用するには、Alibaba Cloud Managed Services (旧エコノミー版) を有効にする必要があります。Alibaba Cloud Managed Services (旧エコノミー版) は特定のリージョンでのみ利用可能であることに注意してください。詳細については、「サポートされているデータベースとリージョン」をご参照ください。このサービスを有効にするには、「Alibaba Cloud Managed Services (旧エコノミー版) の管理」をご参照ください。

  • 最近のデッドロック分析: DAS は、SHOW ENGINE INNODB STATUS コマンドによって返された最新のデッドロックログを分析します。複数のデッドロックが発生した場合、DAS は最新のデッドロックのみを分析します。詳細については、「最近のデッドロック分析」をご参照ください。

  • 完全なデッドロック分析: DAS は定期的にエラーログを分析し、デッドロック情報を解析し、包括的なデッドロック分析を実行します。DAS では、特定の時間範囲内のデッドロックの傾向と各デッドロックの詳細を表示することもできます。詳細については、「完全なデッドロック分析」をご参照ください。

  • その他のロック分析: DAS は、information_schema および performance_schema からのデータを使用して、データベースインスタンスの現在のセッションにおけるメタデータロックとブロックされたトランザクションをリアルタイムで分析します。詳細については、「その他のロック分析」をご参照ください。

    • メタデータロック分析: DAS は、information_schema.processlist などのテーブルのデータに基づいてロック待ちの関係を推測し、対応するグラフを生成します。

    • トランザクションブロッキング分析: DAS は、information_schema.processlistinformation_schema.innodb_trx、および information_schema.innodb_lock_waits (MySQL 5.6 および 5.7 の場合) または performance_schema.data_lock_waits (MySQL 8.0 の場合) のデータに基づいてトランザクションブロッキングの関係を分析し、対応するグラフを生成します。

      説明

      トランザクションブロッキング分析機能は、PolarDB for MySQL 5.6 インスタンスではサポートされていません。

データベースインスタンスのパラメーター制限

ロック分析機能を使用するには、ターゲットデータベースインスタンスに対応するパラメーターを設定する必要があります。

ロック分析機能

関連するデータベースインスタンスのパラメーター

最近のデッドロック分析

innodb_deadlock_detect パラメーターを ON に設定します。

完全なデッドロック分析

  • innodb_deadlock_detect パラメーターを ON に設定します。

  • innodb_print_all_deadlocks パラメーターを ON に設定します。ApsaraDB RDS for MySQL インスタンスの場合は、log_error_verbosity パラメーターも 3 に設定します。

その他のロック分析トランザクションブロッキング分析

ApsaraDB RDS for MySQL 8.0 インスタンスまたは PolarDB for MySQL 8.0 インスタンスの場合は、performance_schema パラメーターを ON に設定します。

データベースインスタンスのパラメーターを変更するには:

関連ドキュメント

次のステップ

データベースインスタンスでデッドロックまたはトランザクションブロッキングが発生した場合、ロック分析からのスレッド ID などの情報を使用して、SQL Explorer と監査 で関連するトランザクションの実行を分析できます。これにより、ロック待ちの原因を特定できます。たとえば、トランザクションが開始されて多数のデータ行を更新すると、それらの行はそのトランザクションによってロックされます。トランザクションが長時間実行され、コミットまたはロールバック (明示的または暗黙的) されない場合、同じデータ行を更新しようとする後続のセッションまたはトランザクションは LOCK WAIT 状態になります。