Este tema describe cómo usar la función de análisis de bloqueos de DAS. Esta función permite analizar las esperas de bloqueo de metadatos (MDL) y el bloqueo transaccional en su base de datos.
Los datos que se muestran en las imágenes de este documento provienen de casos de prueba. En el uso real, tome como referencia los parámetros de datos reales, como el ID de hilo y las sentencias SQL.
Requisitos previos
-
Motor de base de datos de destino:
RDS MySQL
PolarDB for MySQL
La instancia de base de datos de destino está conectada a DAS y su estado de acceso aparece como Normal Access. Para obtener más información sobre cómo conectar una instancia de base de datos, consulte Connect a database instance.
-
Habilitó Alibaba Cloud Managed Services (anteriormente DAS Economy Edition).
ImportanteAlibaba Cloud Managed Services (anteriormente DAS Economy Edition) solo está disponible en regiones específicas. Para obtener más información, consulte Supported databases and regions by edition.
Para habilitar Alibaba Cloud Managed Services (anteriormente DAS Economy Edition), consulte Manage Alibaba Cloud Managed Services (formerly DAS Economy Edition).
Tipos de bloqueo
-
Análisis de bloqueo de metadatos (MDL)
Datos analíticos: usa datos de tablas como
information_schema.processlistpara inferir relaciones de espera de bloqueos y generar un gráfico de relaciones.
-
Análisis de bloqueo transaccional
ImportanteEl análisis de bloqueo transaccional no es compatible con las instancias PolarDB for MySQL 5.6.
-
Datos analíticos: usa datos de
information_schema.processlist,information_schema.innodb_trxy las tablas que se muestran a continuación para analizar las relaciones de bloqueo transaccional y generar un gráfico de relaciones.RDS MySQL 5.6 y 5.7:
information_schema.innodb_lock_waitsPolarDB for MySQL 5.7:
information_schema.innodb_lock_waitsRDS MySQL y PolarDB for MySQL 8.0:
performance_schema.data_lock_waits
-
Configuración de parámetros: para las instancias RDS MySQL 8.0 y PolarDB for MySQL 8.0, debe habilitar el parámetro
performance_schema. Para modificar los parámetros de la instancia:Para RDS MySQL, consulte Set instance parameters.
Para PolarDB for MySQL, consulte Set cluster and node parameters.
-
Métodos de activación
Lock analysis – On-demand analysis: en la página Lock Analysis, active manualmente el análisis de otros bloqueos.
Instance sessions – Automatic analysis: el análisis de otros bloqueos se ejecuta automáticamente al actualizar la página Instance Sessions.
Análisis de bloqueos – análisis bajo demanda
Cree un análisis
Inicie sesión en la consola de DAS.
En el panel de navegación izquierdo, haga clic en .
Busque la instancia de destino y haga clic en el ID de la instancia para abrir la página de detalles de la instancia.
En el panel de navegación izquierdo, haga clic en Lock Analysis. En la página Lock Analysis, en Other Lock Analysis, haga clic en Create Analysis para iniciar un análisis.
Consulte los detalles
Haga clic en el icono de flecha (
) junto a un resultado de diagnóstico para consultar detalles sobre las esperas de bloqueo de metadatos y el bloqueo transaccional. En la página Other Lock Analysis, después de expandir un registro de diagnóstico, puede consultar los detalles de los tipos de bloqueo, incluidos Metadata Lock (2 sesiones bloqueadas) y Transaction Lock (2 sesiones bloqueadas). Haga clic en View Details, junto a un tipo de bloqueo, para consultar información de bloqueo específica.
Detalles del bloqueo transaccional
Haga clic en View Details, en la columna Actions de un bloqueo transaccional de la lista, para conocer dos formas de consultar la información detallada del bloqueo transaccional:
List: la lista de detalles del bloqueo transaccional muestra información sobre transacciones bloqueadas en formato de tabla. Incluye las columnas ID, usuario, host, nombre de base de datos, comando y transacción bloqueada. Haga clic en el enlace View Details de la columna Blocked Transaction para abrir una ventana emergente que muestra información detallada sobre la transacción bloqueada. Esta información incluye ID, usuario, host, nombre de base de datos, comando, tiempo de ejecución (en segundos), estado y sentencia SQL.
View: la pestaña View muestra las dependencias del bloqueo transaccional como un gráfico visual. Las sesiones que mantienen bloqueos aparecen en la parte superior, con conectores LOCK WAIT que apuntan a las sesiones que esperan bloqueos. Haga clic en un nodo de sesión para expandir un panel de detalles que muestra ID, Transaction Resolution, Rows Locked by Transaction, Tables Locked by Transaction y Rows Updated by Transaction.
Detalles del bloqueo de metadatos
Haga clic en View Details, en la columna Actions de un bloqueo de metadatos de la lista, para consultar una representación visual de los detalles del bloqueo de metadatos. En la vista, haga clic en un bloque de sesión para consultar su información detallada en la parte inferior. También puede finalizar sesiones relacionadas desde esta página. La página de diagnóstico de bloqueos de metadatos muestra un gráfico de relaciones de bloqueos con tres nodos: Suspicious Session (1) Metadata Lock, Table students DDL Session (1) y Table students Other Session (1). Las flechas etiquetadas con "Waiting for table metadata lock" indican relaciones de espera. Al expandir la sesión sospechosa se muestra: ID 197889, usuario das, dirección de host parcialmente enmascarada, base de datos das, comando Sleep y un tiempo de ejecución de 176 segundos. En la parte inferior, tres botones de acción ayudan a resolver problemas de bloqueo de metadatos: Kill Selected Session, Kill All Suspicious Sessions y Kill All DDL Statements.
Combinación con SQL Explorer and Audit y análisis de auditoría
Una sesión sospechosa en estado Sleep puede no mostrar información SQL porque inició una transacción, ejecutó sentencias SQL, pero aún no ha confirmado ni revertido la transacción. En este caso, en el panel de navegación izquierdo de la instancia de destino, haga clic en SQL Explorer and Audit. En la página Audit, haga clic en Enable Advanced Query, introduzca el ID de hilo de la sesión sospechosa y consulte las sentencias SQL ejecutadas por esa sesión. Por ejemplo, una transacción no confirmada causó esperas de bloqueos. En la pestaña Audit, expanda el formulario de consulta avanzada Set Query Conditions. Establezca el intervalo de tiempo desde el 4 de noviembre de 2024 a las 14:34:49 hasta el 4 de noviembre de 2024 a las 16:49:49. Introduzca 197889 en Thread ID y haga clic en Query. La lista Log List que aparece en la parte inferior muestra los registros SQL ejecutados por este hilo durante el período especificado. Entre ellos se incluyen update students set name=UUID() where id = 3 (ejecutado el 2024-11-04 16:27:22.426) y begin (ejecutado el 2024-11-04 16:27:21.322).
Sesiones de instancia – análisis automático
Procedimiento
Inicie sesión en la consola de DAS.
En el panel de navegación izquierdo, haga clic en .
Busque la instancia de destino y haga clic en el ID de la instancia para abrir la página de detalles de la instancia.
En el panel de navegación izquierdo, haga clic en Instance Sessions. En la página Session Management, el análisis de otros bloqueos se ejecuta automáticamente y los resultados aparecen en la esquina superior derecha. En la página Sessions de detalles de la instancia, compruebe el estado Lock Wait Exists en el área superior de métricas. Si muestra No, no existen esperas de bloqueos. Haga clic en View Details para analizar más a fondo las esperas de bloqueos.
Consulte los detalles en la página Instance Sessions
En la página Instance Sessions, si existen esperas de bloqueos, haga clic en View Details para consultar los bloqueos transaccionales (si existen) y los bloqueos de metadatos (si existen) en un panel lateral. En la página Sessions de la instancia DAS, el área superior de métricas muestra 6 sesiones activas, 0.3% de uso de CPU, 0.1% de uso de conexiones, 4 sesiones anómalas y Lock Wait Exists como Yes. En la lista de sesiones que aparece abajo, algunas sesiones muestran el estado "Waiting for table metadata lock", lo que indica una espera de bloqueo. Haga clic en View Details para analizar más a fondo las relaciones de espera de bloqueos.
Detalles del bloqueo transaccional
Haga clic en View Details, en la columna Actions de un bloqueo transaccional de la lista, para consultar dos opciones de visualización (List y View), que funcionan igual que en el análisis bajo demanda. Para obtener más información, consulte On-demand analysis – Transaction lock details.
En la ventana emergente Lock Wait, la pestaña Transaction Lock muestra una tabla con Lock Type y Blocked Sessions.
Detalles del bloqueo de metadatos
Haga clic en View Details, en la columna Actions de un bloqueo de metadatos de la lista, para consultar una representación visual de los detalles del bloqueo de metadatos, con el mismo método que en el análisis bajo demanda. Para obtener más información, consulte On-demand analysis – Metadata lock details.
En la ventana emergente Lock Wait, la pestaña Metadata Lock muestra un gráfico visual de las relaciones de retención y espera de bloqueos.
Consulte los detalles en la página Lock Analysis
En la página Lock Analysis, haga clic en el icono de flecha (
) junto a un resultado de diagnóstico para consultar estadísticas históricas de los análisis de otros bloqueos activados automáticamente en la página Instance Sessions. El método de consulta coincide con el del análisis bajo demanda. Para obtener más información, consulte On-demand analysis – View details. En la página Other Lock Analysis, seleccione un intervalo de tiempo y haga clic en View. Busque un registro de diagnóstico cuyo Lock Found sea Yes, expándalo y consulte los tipos de bloqueo (bloqueo de metadatos, bloqueo transaccional) y sus números de sesiones bloqueadas. Haga clic en View Details para ir a la página de detalles del bloqueo.