Database Autonomy Service (DAS) propose la fonctionnalité d'analyse des verrous pour consulter et analyser les interblocages, les blocages de transactions et les attentes de verrous de métadonnées dans une base de données. Elle facilite l'identification et le dépannage des problèmes d'attente de verrous, garantissant ainsi la stabilité de votre base de données.
Prérequis
-
Votre instance de base de données utilise l'un des moteurs suivants :
ApsaraDB RDS for MySQL
Base de données MySQL autogérée
PolarDB for MySQL
PolarDB-X 2.0
Votre instance de base de données est connectée à DAS et son état est défini sur Normal Access. Pour plus d'informations, consultez la rubrique Connecter une instance de base de données à DAS.
Précautions
La fonctionnalité d'analyse des interblocages ne peut pas traiter les interblocages contenant le message suivant : TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION.
Fonctionnalités
La fonctionnalité d'analyse des verrous permet d'analyser sous plusieurs angles les interblocages, les blocages de transactions et les attentes de verrous de métadonnées sur une instance de base de données.
Les fonctionnalités full deadlock analysis et other lock analysis sont prises en charge uniquement pour les instances ApsaraDB RDS for MySQL et les clusters PolarDB for MySQL. Pour les utiliser, activez DAS Economy Edition ou DAS Enterprise Edition sur l'instance concernée. Ces éditions sont disponibles uniquement dans certaines régions. Pour plus d'informations, consultez la section Bases de données et régions prises en charge de la rubrique « Éditions et fonctionnalités prises en charge ». Pour savoir comment activer DAS Economy Edition ou DAS Enterprise Edition, reportez-vous à la section Activer DAS Economy Edition et DAS Enterprise Edition de la rubrique « Activer et gérer DAS Economy Edition et DAS Enterprise Edition ».
Recent deadlock analysis : DAS analyse le journal d'interblocage le plus récent présent dans la sortie de l'instruction
SHOW ENGINE INNODB STATUS. En cas d'interblocages multiples, seul le plus récent est analysé. Pour plus d'informations, consultez la section Analyse des interblocages récents de la rubrique « Analyse des interblocages ».Full deadlock analysis : DAS analyse régulièrement les journaux d'erreurs, extrait les informations relatives aux interblocages, puis effectue une analyse complète. Vous pouvez également visualiser les tendances des interblocages sur une plage horaire donnée et consulter les détails de chaque interblocage. Pour plus d'informations, consultez la section Analyse complète des interblocages de la rubrique « Analyse des interblocages ».
-
Other lock analysis : DAS analyse en temps réel les verrous de métadonnées et les transactions bloquées dans les sessions actives de votre instance de base de données, en s'appuyant sur les données des bases de données
information_schemaetperformance_schema. Pour plus d'informations, consultez la rubrique Autres analyses de verrous.Analyse des verrous de métadonnées : DAS déduit les relations d'attente de verrous et génère le diagramme correspondant à partir des données contenues dans des tables telles que
information_schema.processlist.-
Analyse du blocage des transactions : DAS analyse les relations de blocage entre les transactions et génère le diagramme correspondant à partir des données des tables
information_schema.processlist,information_schema.innodb_trxetinformation_schema.innodb_lock_waitsouperformance_schema.data_lock_waits. Les données de la tableinformation_schema.innodb_lock_waitssont utilisées pour les instances exécutant MySQL 5.6 ou MySQL 5.7, tandis que celles de la tableperformance_schema.data_lock_waitsservent aux instances exécutant MySQL 8,0.RemarqueLa fonctionnalité d'analyse du blocage des transactions n'est pas prise en charge par les clusters PolarDB for MySQL exécutant MySQL 5.6.
Paramètres de configuration
Pour utiliser une fonctionnalité d'analyse des interblocages, configurez les paramètres correspondants de l'instance de base de données. Le tableau suivant décrit les configurations requises pour chaque fonctionnalité.
Fonctionnalité d'analyse des verrous | Configuration de paramètre requise |
Recent deadlock analysis | Définissez le paramètre |
Full deadlock analysis |
|
Analyse du blocage des transactions dans other lock analysis | Si l'instance de base de données est une instance ApsaraDB RDS for MySQL 8,0 ou un cluster PolarDB for MySQL 8,0, vous devez définir le paramètre |
Pour plus d'informations sur la modification des paramètres d'une instance de base de données, consultez l'une des rubriques suivantes selon le moteur utilisé :
ApsaraDB RDS for MySQL : Modifier les paramètres d'une instance
PolarDB for MySQL : Configurer les paramètres du cluster et des nœuds
Références
Étapes suivantes
En cas d'interblocage ou de blocage de transaction sur votre instance de base de données, exploitez les informations issues de l'analyse des verrous, telles que les ID de thread, pour examiner l'exécution des transactions concernées sur la page SQL Explorer et Audit. Cela vous aide à identifier la cause des attentes de verrous. Par exemple, après le démarrage d'une transaction et la mise à jour de lignes de données spécifiques, ces lignes sont verrouillées. Si l'exécution de la transaction se prolonge sans validation explicite ou implicite ni annulation, les sessions ou transactions ultérieures tentant de mettre à jour les mêmes lignes de données passeront dans l'état LOCK WAIT.