Cuando se producen interbloqueos en su instancia de ApsaraDB RDS for MySQL, utilice la función Lock Analysis para analizar visualmente los interbloqueos recientes, el bloqueo de transacciones y las esperas de bloqueos de metadatos. Esto le permite identificar rápidamente la causa raíz de los interbloqueos y mejorar la estabilidad de la base de datos.
Requisitos previos
Su instancia debe pertenecer a una de las siguientes ediciones:
RDS MySQL 8.4 High-availability Edition o Cluster Edition
RDS MySQL 8.0 High-availability Edition , Three-node Enterprise Edition, o Cluster Edition
RDS MySQL 5.7 High-availability Edition , Three-node Enterprise Edition, o Cluster Edition
RDS MySQL 5.6 High-availability Edition
RDS MySQL 5.5 High-availability Edition
En la página Basic Information de la instancia, compruebe que el campo Type and Edition muestre High-availability Edition , Three-node Enterprise Edition, o Cluster Edition, y que el campo Database Engine sea MySQL.
Las instancias Basic Edition no son compatibles con Lock Analysis.
Funciones
La función Lock Analysis ofrece un análisis multidimensional de los interbloqueos, el bloqueo de transacciones y las esperas de bloqueos de metadatos en su instancia de base de datos.
Las funciones Full Deadlock Analysis y Other Lock Analysis requieren DAS Professional Edition o DAS Enterprise Edition, disponibles únicamente en ciertas regiones. Para obtener más información, consulte Databases and regions supported by different DAS editions. Para habilitar DAS Professional Edition o DAS Enterprise Edition, consulte Manage DAS audit logs and O&M services (formerly Professional Edition).
Last Deadlock Analysis: DAS analiza el registro de interbloqueo más reciente que devuelve el comando
SHOW ENGINE INNODB STATUS.Full Deadlock Analysis: DAS examina periódicamente el registro de errores para extraer la información de interbloqueos y ejecutar un análisis exhaustivo. También permite consultar las tendencias de interbloqueo y los detalles de cada uno dentro de un rango de tiempo específico.
-
Other Lock Analysis: DAS utiliza datos de
information_schemayperformance_schemapara analizar en tiempo real los bloqueos de metadatos y el bloqueo de transacciones en las sesiones actuales de su instancia de base de datos.Análisis de bloqueos de metadatos: DAS deduce las relaciones de espera de bloqueos a partir de datos en tablas como
information_schema.processlisty las representa visualmente mediante un gráfico.Análisis de bloqueo de transacciones: DAS analiza las relaciones de bloqueo entre transacciones y las muestra en un gráfico. Para ello, usa datos de
information_schema.processlist,information_schema.innodb_trxy deinformation_schema.innodb_lock_waits(para MySQL 5.6 y 5.7) operformance_schema.data_lock_waits(para MySQL 8.0).
Requisitos de parámetros de la instancia
Para usar las funciones de Lock Analysis, configure los parámetros obligatorios en la instancia de base de datos de destino.
Función | Parámetros obligatorios |
Last Deadlock Analysis | Habilite el parámetro |
Full Deadlock Analysis |
|
Análisis de bloqueo de transacciones en Other Lock Analysis | En las instancias de RDS MySQL 8.0, debe habilitar el parámetro |
Para modificar los parámetros de la instancia, consulte Configure instance parameters.
Notas de uso
Actualmente, Lock Analysis no admite el análisis de interbloqueos que contengan la descripción "TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION".
Procedimiento
Vaya a la página Lista de instancias de RDS, seleccione una región en la parte superior y haga clic en el ID de la instancia de destino.
En el panel de navegación izquierdo, elija Autonomy Services > Diagnostics.
Haga clic en la pestaña Lock Analysis.
En la página Lock Analysis, haga clic en Create Analysis en el panel izquierdo.
(Opcional) Si se detecta un interbloqueo, localice la nueva entrada en la lista de diagnósticos y haga clic en View Details dentro de la columna Details.
-
En la página Lock Analysis, consulte y diagnostique los interbloqueos recientes de la instancia de base de datos.
-
Last Deadlock Analysis
En la pestaña Last Deadlock Analysis, haga clic en Create Analysis para analizar el registro de interbloqueo más reciente obtenido con el comando
SHOW ENGINE INNODB STATUS.Seleccione un rango de tiempo para consultar los resultados del diagnóstico. En la columna Details de un resultado, haga clic en View Details para ver el informe de diagnóstico detallado.
-
Full Deadlock Analysis
En la pestaña Full Deadlock Analysis, consulte las tendencias de interbloqueo y los detalles de cada uno para un rango de tiempo específico.
-
Other Lock Analysis
En la pestaña Other Lock Analysis, haga clic en Create Analysis. DAS analiza en tiempo real los bloqueos de metadatos y el bloqueo de transacciones en la sesión actual de la instancia de base de datos, con base en los datos de
information_schemayperformance_schema.-
Seleccione un rango de tiempo para consultar los resultados del diagnóstico.
Haga clic en el icono
junto a una entrada de resultado de diagnóstico para consultar sus estadísticas de análisis de bloqueos.-
En la columna Actions de las estadísticas, haga clic en View Details para ver el informe de diagnóstico detallado y el gráfico de análisis de bloqueos.
Coloque el cursor sobre una sesión en el gráfico para consultar sus relaciones de espera de bloqueos. Haga clic en una sesión para ver sus detalles.
-
Qué hacer a continuación
Cuando ocurra un interbloqueo en su instancia de base de datos, utilice la información del análisis de bloqueos (como el ID del hilo de la transacción) en SQL Explorer and Audit para analizar la ejecución de las transacciones relacionadas e identificar la causa del interbloqueo. Por ejemplo, cuando una transacción inicia y actualiza varias filas de datos, dichas filas quedan bloqueadas. Si la transacción permanece abierta mucho tiempo sin confirmarse ni revertirse (incluidas las confirmaciones y reversiones implícitas), las sesiones o transacciones posteriores que intenten actualizar esas mismas filas entrarán en estado de espera de bloqueo.