Wie reduziert die Option '' --use-savepoints "von mydumper das Sperren von Metadaten?

8

MyDumper 0.6.1 fügt eine neue Option hinzu --use-savepoints. Aus dem Handbuch bedeutet es:

Verwenden Sie Sicherungspunkte, um Probleme beim Sperren von Metadaten zu reduzieren. Benötigt das SUPER-Privileg

Ich verstehe nicht Wie werden "Probleme beim Sperren von Metadaten reduziert" und warum wird das "SUPER-Privileg" benötigt? Wie ich denke, sind Metadaten wichtig, um zu verhindern, dass andere DDL die Tabellenstruktur ändern.

Blattschwert
quelle

Antworten:

3

Ich musste ein wenig im Quellcode von mydumper stöbern, um die Antwort auf diese Frage zu finden. Wenn Sie sich den tatsächlichen Quellcode von mydumper ansehen:

Sie finden Folgendes ab Zeile 415 als Teil der Prozesswarteschlange:

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

Dies zeigt, dass für die Verwendung von --use-savepoints in mydumper das MySQL-Bin-Protokoll deaktiviert werden muss. Ich habe dies auf meinem eigenen MariaDB-Server versucht, der immer noch MySQL als Basis-DBMS verwendet, und bei Verwendung eines Nicht-Administratorkontos den folgenden Fehler erhalten:

MariaDB [(keine)]> SET SQL_LOG_BIN = 0; FEHLER 1227 (42000): Zugriff verweigert; Sie benötigen (mindestens eines der) SUPER-Berechtigungen für diesen Vorgang

Nach dem, was ich vom eigentlichen Code gelesen und diesen Zustand auf meinem eigenen MySQL-Server getestet habe, benötigen Sie meines Erachtens das "SUPER-Privileg", da mydumper die Protokollierung im binlog deaktiviert, während es ausgeführt wird. Dies ist Teil der "Aktivieren oder Deaktivieren der Protokollierung" eines im DOCS genannten SUPER .

Weitere Informationen zum Binlog finden Sie hier:

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

So weit wie Savepoints gehen:

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

Nach dem Lesen des Handbuchs und dieses Fehlerberichts sieht es so aus, als würden bei Freigabe von Sicherungspunkten Sperren für die Tabelle freigegeben, an der gearbeitet wird, wodurch Sperrprobleme verhindert werden können, die erst in MySqldump bei MySQL 5.5 aufgetreten sind.

Ich hoffe, dies gibt ein wenig mehr Einblick in das mydumper-Tool.

JPeck89
quelle