Мне пришлось немного покопаться в исходном коде mydumper, чтобы найти ответ на этот вопрос. Если вы посмотрите на исходный код mydumper:
Вы найдете следующее, начиная со строки 415, как часть очереди процесса:
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);
}
Это показывает, что использование --use-savepoints в mydumper требует возможности отключить журнал bin MySQL. Я попытался сделать это на своем собственном сервере MariaDB, который все еще использует MySQL в качестве базовой СУБД, и получил следующую ошибку при использовании учетной записи без прав администратора:
MariaDB [(нет)]> SET SQL_LOG_BIN = 0; ОШИБКА 1227 (42000): доступ запрещен; вам нужна (хотя бы одна из) привилегий SUPER для этой операции
Из того, что я читал о реальном коде и тестировал это условие на моем собственном MySQL-сервере, я понимаю, что вам нужна «привилегия SUPER», поскольку mydumper будет отключать ведение журнала в binlog во время работы. Это часть «включения или выключения регистрации» мощности SUPER, упомянутой в DOCS .
Более подробная информация о binlog находится здесь:
http://dev.mysql.com/doc/refman/5.6/en/set-sql-log-bin.html
Что касается точек сохранения:
http://dev.mysql.com/doc/refman/5.6/en/savepoint.html
После прочтения руководства и этого отчета об ошибках, похоже, что если точки сохранения сбрасываются, они снимают блокировки на обрабатываемой таблице, что может предотвратить проблемы с блокировками, которые были обнаружены в mysqldump совсем недавно, как MySQL 5.5.
Я надеюсь, что это дает немного больше понимания инструмента mydumper.