回答:
この質問に対する答えを見つけるには、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);
}
これは、mydumperで--use-savepointsを使用するには、MySQL binログをオフにする機能が必要であることを示しています。MySQLをベースDBMSとして使用している自分のMariaDBサーバーでこれを試行し、非管理者アカウントを使用すると次のエラーが発生しました。
MariaDB [(なし)]> SET SQL_LOG_BIN = 0; エラー1227(42000):アクセスが拒否されました。この操作には(少なくとも1つの)SUPER特権が必要です
実際のコードを読んで自分のMySQLサーバーでこの条件をテストしていたことから、mydumperは実行中にbinlogへのロギングを無効にするため、「SUPER特権」が必要であることを理解しています。これは、ドキュメントで言及されているSUPERの「ロギングの有効化または無効化」機能の一部です。
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
マニュアルとこのバグレポートを読んだ後、セーブポイントが解放されると、作業中のテーブルのロックが解除され、MySQL 5.5と同様にmysqldumpで見られたロックの問題を防ぐことができるようになります。
これにより、mydumperツールについてもう少し洞察が得られることを願っています。