In che modo l'opzione '' --use-savepoints "di mydumper riduce il blocco dei metadati


8

MyDumper 0.6.1 aggiunge una nuova opzione --use-savepoints. Dal manuale, significa:

Utilizzare i punti di salvataggio per ridurre i problemi di blocco dei metadati, necessita del privilegio SUPER

Non capisco. In che modo "riduce i problemi di blocco dei metadati" e perché necessita del "privilegio SUPER"? A mio avviso, i metadati sono essenziali per prevenire altre strutture di tabella di modifica DDL.

Risposte:


3

Ho dovuto scavare un po 'nel codice sorgente di mydumper per trovare la risposta a questa domanda. Se guardi il codice sorgente effettivo di mydumper:

Troverai quanto segue a partire dalla riga 415 come parte della coda del processo:

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);
}

Ciò dimostra che l'uso di --use-savepoints in mydumper richiede la possibilità di disattivare il registro bin di MySQL. Ho provato a farlo sul mio server MariaDB che utilizza ancora MySQL come DBMS di base e ho riscontrato il seguente errore quando si utilizza un account non amministratore:

MariaDB [(none)]> SET SQL_LOG_BIN = 0; ERRORE 1227 (42000): accesso negato; hai bisogno (almeno uno dei) dei privilegi SUPER per questa operazione

Da quello che stavo leggendo il codice attuale e testando questa condizione sul mio server MySQL la mia comprensione è che hai bisogno del "privilegio SUPER" poiché mydumper disabiliterà la registrazione nel binlog mentre è in esecuzione. Questo fa parte del potere "abilitazione o disabilitazione della registrazione" di un SUPER menzionato nei DOCS .

Informazioni più specifiche sul binlog sono disponibili qui:

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

Per quanto riguarda i punti di salvataggio:

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

Dopo aver letto il manuale e questo bug report sembra che se vengono rilasciati punti di salvataggio rilasceranno blocchi sulla tabella su cui si sta lavorando che possono prevenire problemi di blocco che sono stati visti su mysqldump di recente come MySQL 5.5.

Spero che questo dia un po 'più di comprensione allo strumento mydumper.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.