Database Autonomy Service (DAS) ofrece la función de análisis de bloqueos. Esta herramienta le permite consultar y analizar los deadlocks, el bloqueo de transacciones y las esperas por bloqueos de metadatos en una base de datos. Así podrá identificar y solucionar problemas de espera de bloqueos con facilidad, además de garantizar la estabilidad de la base de datos.
Requisitos previos
-
La instancia de base de datos ejecuta uno de los siguientes motores:
ApsaraDB RDS for MySQL
Base de datos MySQL autogestionada
PolarDB for MySQL
PolarDB-X 2.0
La instancia de base de datos está conectada a DAS y se encuentra en el estado Normal Access. Para obtener más información, consulte Connect a database instance to DAS.
Precauciones
La función de análisis de deadlocks no sirve para analizar aquellos que contienen la siguiente información: TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION.
Funciones
La función de análisis de bloqueos le permite analizar desde múltiples dimensiones los deadlocks, el bloqueo de transacciones y las esperas por bloqueos de metadatos en una instancia de base de datos.
Las funciones de análisis completo de deadlocks y análisis de otros bloqueos solo son compatibles con instancias de ApsaraDB RDS for MySQL y clústeres de PolarDB for MySQL. Para utilizarlas en una instancia de base de datos, habilite DAS Economy Edition o DAS Enterprise Edition en dicha instancia. Estas ediciones solo están disponibles en regiones específicas. Para obtener más información, consulte la sección Supported databases and regions del tema "Editions and supported features". Si necesita saber cómo habilitar DAS Economy Edition o DAS Enterprise Edition, consulte la sección Enable DAS Economy Edition and DAS Enterprise Edition del tema "Enable and manage DAS Economy Edition and DAS Enterprise Edition".
Análisis de deadlocks recientes: DAS analiza el registro de deadlock más reciente en la salida de la instrucción
SHOW ENGINE INNODB STATUS. Si ocurrieron varios deadlocks, DAS analiza únicamente el último. Para obtener más información, consulte la sección Recent deadlock analysis del tema "Deadlock analysis".Análisis completo de deadlocks: DAS analiza los registros de error de forma periódica, procesa la información de los deadlocks y después ejecuta un análisis integral. También le permite consultar las tendencias de deadlocks dentro de un rango de tiempo específico y revisar los detalles de cada uno. Para obtener más información, consulte la sección Full deadlock analysis del tema "Deadlock analysis".
-
Análisis de otros bloqueos: DAS analiza en tiempo real los bloqueos de metadatos y las transacciones bloqueadas en las sesiones actuales de su instancia de base de datos. Para ello, utiliza los datos de las bases de datos
information_schemayperformance_schema. Para obtener más información, consulte Other lock analysis.Análisis de bloqueos de metadatos: DAS deduce la relación de espera de bloqueos y genera el diagrama correspondiente a partir de los datos de tablas como
information_schema.processlist.-
Análisis de bloqueo de transacciones: DAS analiza la relación de bloqueo entre transacciones y genera el diagrama correspondiente con base en los datos de las tablas
information_schema.processlist,information_schema.innodb_trxyinformation_schema.innodb_lock_waitsoperformance_schema.data_lock_waits. Los datos de la tabla information_schema.innodb_lock_waits se usan en instancias de base de datos que ejecutan MySQL 5.6 o MySQL 5.7. En cambio, los datos de la tabla information_schema.innodb_lock_waits se utilizan en instancias que ejecutan MySQL 8.0.NotaLa función de análisis de bloqueo de transacciones no es compatible con clústeres de PolarDB for MySQL que ejecutan MySQL 5.6.
Configuración de parámetros
Para usar una función de análisis de deadlocks en una instancia de base de datos, especifique los parámetros correspondientes de dicha instancia. A continuación se describen los ajustes de parámetros obligatorios para cada función de análisis de deadlocks.
Función de análisis de bloqueos | Configuración de parámetro obligatoria |
Análisis de deadlocks recientes | Establezca el parámetro |
Análisis completo de deadlocks |
|
Análisis de bloqueo de transacciones en el análisis de otros bloqueos | Si la instancia de base de datos es una instancia de ApsaraDB RDS for MySQL 8.0 o un clúster de PolarDB for MySQL 8.0, establezca el parámetro |
Para obtener más información sobre cómo modificar los parámetros de una instancia de base de datos, consulte uno de los siguientes temas según el motor de su instancia:
ApsaraDB RDS for MySQL: Modify instance parameters
PolarDB for MySQL: Configure cluster and node parameters
Referencias
Qué hacer a continuación
Cuando ocurre un deadlock o un bloqueo de transacciones en su instancia de base de datos, utilice la información obtenida tras el análisis de bloqueos, como los identificadores de hilos, para analizar la ejecución de las transacciones relacionadas en la página SQL Explorer and Audit. Esto le ayudará a identificar la causa de las esperas de bloqueos. Por ejemplo, cuando se inicia una transacción y se actualizan filas de datos específicas, dichas filas quedan bloqueadas. Si la ejecución de la transacción dura mucho tiempo y esta no se confirma ni se revierte de forma explícita o implícita, las sesiones o transacciones posteriores que intenten actualizar las mismas filas entrarán en estado de espera de bloqueo.