MySQL 101: Usar super_read_only – Blog de rendimiento de base de datos de Percona

Como muchos de ustedes recordarán, Percona agregó el super_lectura_solo función de retorno en Percona Server para MySQL 5.6.21, basada en el trabajo realizado por WebScaleSQL. Esta característica eventualmente encontró su camino en MySQL Community Branch a partir de 5.7.8 y funciona de la misma manera en ambos casos. Si bien esto ya es una noticia vieja, durante el último año he recibido un par de preguntas de los clientes que me rodean. super_lectura_solo uso en MySQL, y cómo funciona en la práctica. Durante el uso super_lectura_solo no es complicado, hay una pequeña advertencia que ocasionalmente genera cierta confusión en torno a su uso. Como tal, pensé que podría ser una buena idea escribir una publicación de blog rápida que explique un poco más esta función y amplíe cómo interactuar con ella. solo lectura.

¿Qué es super_read_only?

Para aquellos que no están familiarizados, esto es todo. super_lectura_solo? Antes de su introducción, MySQL tenía la opción de establecer un nodo solo lectura, impidiendo que todos excepto aquellos con la SÚPER privilegio de escribir en la base de datos. Más comúnmente utilizado para los nodos de replicación, fue un buen paso para evitar que alguien actualice una réplica manualmente sin darse cuenta sin pasar por el nodo principal y dejar que los subprocesos de replicación administren la distribución. Esto, por supuesto, podría interrumpir la replicación debido a claves duplicadas, filas faltantes u otros problemas debido a la inconsistencia entre los conjuntos de datos.

Usar super_lectura_solo lleve esto un paso más allá, se comportan de manera idéntica solo lectura al mismo tiempo que bloquea a aquellos con SÚPER privilegios para escribir en la base de datos también. Si bien a primera vista esto puede parecer una medida provisional en lugar de permitir usuarios mejores y más restrictivos, ha demostrado ser muy útil en entornos de producción para agregar una capa adicional de protección a los nodos de replicación y ayudan a evitar que los errores humanos los causen. . tiempo de inactividad inesperado.

una mano lava la otra

La encuesta a la que me referí anteriormente viene con su uso, y no entiendo (ni olvido) que solo lectura y super_lectura_solo están vinculados. Lo más importante a tener en cuenta es que habilitar super_lectura_solo implica regular solo lectura también.

  • Parámetro solo lectura = APAGADO también poner super_lectura_solo = APAGADO.
  • Parámetro super_lectura_solo = ENCENDIDO también poner solo lectura = ENCENDIDO.
  • Todos los demás cambios a una de estas variables no tienen efecto para el otro.

Este comportamiento parece lógico, como cuando está apagado solo lectura probablemente también quieras deshabilitarlo super_lectura_solo, y viceversa, cuando se activa super_lectura_solo probablemente quieras habilitarlo también solo lectura. Si bien este comportamiento relacionado está documentado, no hay advertencias ni notas en MySQL que le adviertan de esto cuando realice un cambio en uno u otro. Esto puede llevar a que se rasque la cabeza, ya que un cambio en una variable cambia la otra a paso fijo.

Consideraciones finales

Hay algunas otras implicaciones a tener en cuenta solo lectura que se aplica a super_lectura_solo también, por ejemplo, se permiten operaciones en tablas temporales, sin importar cómo se establezcan estas variables. Cualquier cosa OPTIMIZAR TABLA o ANÁLISIS DE TABLA También se permiten las operaciones con el propósito de solo lectura / super_lectura_solo es evitar cambios en la estructura de la tabla, pero no en los metadatos de la tabla, como las estadísticas de índice. Por último, estos parámetros se deben deshabilitar manualmente (o mediante secuencias de comandos a través de la automatización) si alguna vez hay un ejemplo en el que la replicación se deba promover al estado principal.


Percona Distribution for MySQL: una solución MySQL de calidad empresarial, gratuita

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