Errores de MySQL super_read_only – Percona Database Performance Blog

Este blog describe un problema con MySQL 5.7 super_lectura_solo función cuando se usa junto con GTID en casos de esclavos encadenados.

En MySQL 5.7.5 y posteriores se introdujo el gtid_executed tabla en la base de datos MySQL para almacenar cada GTID. Esto permite que la instancia esclava use la función GTID independientemente de si la opción binlog está configurada o no. Aquí hay un ejemplo de las filas en él. gtid_executed mesa:

Para ahorrar espacio, esta tabla debe comprimirse periódicamente reemplazando las filas GTID con una sola fila que represente ese rango de identificadores. Por ejemplo, los GTID anteriores se pueden representar con la siguiente fila:

Por otro lado, tenemos la super_read_only Si esta opción está habilitada, MySQL no permitirá ninguna actualización, incluso para los usuarios que tienen SUPER privilegios Se ha implementado antes WebscaleSQL y luego portado a Percona Server 5.6. El código principal de MySQL ha implementado una función similar en la versión 5.7.8.

mysql super_read_only función no permitirá la compresión de la mysql.gtid_executed mesa. Si se realiza una gran cantidad de transacciones en la instancia maestra, hace que la gtid_executed mesa para crecer a un tamaño considerable. Veamos un ejemplo.

Utilice MySQL Sandbox para configurar rápidamente una configuración Maestro/Esclavo y sysbench para simular una gran cantidad de transacciones en la instancia maestra.

Primero, instale la replicación con GTID:

A continuación, configure las variables para una instancia de esclavo encadenado:

Ahora, genera una gran cantidad de transacciones:

Después de ejecutar sysbench por un tiempo, verificamos que el número de fila en el gtid_executed la tabla crece más rápido:

en SHOW ENGINE INNODB STATUScolocar gtid_executed (0.00

0 Compresióngtid_ejecutado

mesa gtid_executed Este subproceso se ejecuta y tarda años en completarse (o puede que nunca se complete). Se ha informado como flush-logs #84332 mysqladmin shutdown. gtid_executed ¿Qué sucede si tiene que detener MySQL mientras se comprime el subproceso?

esta funcionando la mesa En este caso especial, lo ejecutas

hipocresía

‘mysql_sandbox5731.pid’ después175

segundo SUPER Este error ha sido reportado y verificado como super_read_only #84597 gtid_executed .

Si ya tiene una conexión establecida a su base de datos con gtid_executed privilegios, puede deshabilitar el

super_read_only |

mysql gtid_executed >

contar

h super_read_only 127.0.0.1 gtid_executedkill -9 pags

5731 super_read_onlyshutdowntu

caja de arena super_read_onlysuper_read_only pmsandbox FLUSH LOGSapagar

Puede deshabilitar la función antes de cerrar la instancia para comprimir la tabla. Si encuentra un error anterior y no tiene una conexión establecida con su base de datos, la única forma de apagar el servidor es emitir uno en el proceso mysqld. Como se muestra en esta publicación de blog, algunas de las mecánicas del comando MySQL 5.7 no funcionan como se esperaba. Esto puede evitar que sucedan algunas operaciones administrativas, por ejemplo. Si usa la función en MySQL 5.7.17 o anterior, incluido Percona Server 5.7.16 o anterior (que lleva la implementación principal, a diferencia de Percona Server 5.6, que lleva Webscale). implementación) no utilice.

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario