Cómo la opción '' --use-savepoints "de mydumper reduce el bloqueo de metadatos


8

MyDumper 0.6.1 agrega una nueva opción --use-savepoints. Del manual, significa:

Utilice los puntos de guardado para reducir los problemas de bloqueo de metadatos, necesita un privilegio SUPER

No entiendo. ¿Cómo "reduce los problemas de bloqueo de metadatos" y por qué necesita un "privilegio SUPER"? Como creo, los metadatos son esenciales para evitar que otros DDL modifiquen la estructura de la tabla.

Respuestas:


3

Tuve que investigar un poco el código fuente de mydumper para encontrar la respuesta a esta pregunta. Si nos fijamos en el código fuente real de mydumper:

Encontrará lo siguiente comenzando en la línea 415 como parte de la cola del proceso:

if(use_savepoints && mysql_query(thrconn, "SET SQL_LOG_BIN = 0")){
    g_critical("Failed to disable binlog for the thread: %s",mysql_error(thrconn));
    exit(EXIT_FAILURE);
}

Esto muestra que usar --use-savepoints en mydumper requiere la capacidad de desactivar el registro bin de MySQL. Intenté esto en mi propio servidor MariaDB que todavía usa MySQL como el DBMS base y obtuve el siguiente error cuando uso una cuenta que no es de administrador:

MariaDB [(ninguno)]> SET SQL_LOG_BIN = 0; ERROR 1227 (42000): acceso denegado; necesita (al menos uno de) los privilegios SUPER para esta operación

Por lo que estaba leyendo del código real y probando esta condición en mi propio servidor MySQL, entiendo que necesita un "privilegio SUPER" ya que mydumper deshabilitará el inicio de sesión en el binlog mientras se ejecuta. Esto es parte del poder de "habilitar o deshabilitar el registro" de un SUPER mencionado en los DOCS .

Información más específica sobre el binlog está aquí:

http://dev.mysql.com/doc/refman/5.6/en/set-sql-log-bin.html

En cuanto a los puntos de rescate:

http://dev.mysql.com/doc/refman/5.6/en/savepoint.html

Después de leer el manual y este informe de error , parece que si se liberan puntos de rescate, liberarán bloqueos en la tabla en la que se está trabajando, lo que puede evitar problemas de bloqueo que se han visto en mysqldump tan recientemente como MySQL 5.5.

Espero que esto brinde un poco más de información sobre la herramienta mydumper.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.