Tôi đã phải đào một ít mã nguồn của mydumper để tìm câu trả lời cho câu hỏi này. Nếu bạn nhìn vào mã nguồn thực tế của mydumper:
Bạn sẽ tìm thấy những điều sau đây bắt đầu trên dòng 415 như một phần của hàng đợi quá trình:
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);
}
Điều này cho thấy việc sử dụng --use-savepoint trong mydumper yêu cầu khả năng tắt nhật ký bin của MySQL. Tôi đã thử điều này trên máy chủ MariaDB của riêng tôi vẫn sử dụng MySQL làm DBMS cơ sở và gặp lỗi sau khi sử dụng tài khoản không phải quản trị viên:
MariaDB [(không có)]> SET SQL_LOG_BIN = 0; LRI 1227 (42000): Truy cập bị từ chối; bạn cần (ít nhất một trong số) đặc quyền SUPER cho hoạt động này
Từ những gì tôi đã đọc mã thực tế và kiểm tra điều kiện này trong máy chủ MySQL của riêng tôi, tôi hiểu là bạn cần "đặc quyền SIÊU" vì mydumper sẽ vô hiệu hóa việc đăng nhập vào binlog trong khi nó chạy. Đây là một phần của sức mạnh "kích hoạt hoặc vô hiệu hóa ghi nhật ký" của SUPER được đề cập trong DOCS .
Thông tin cụ thể hơn về binlog có tại đây:
http://dev.mysql.com/doc/refman/5.6/en/set-sql-log-bin.html
Theo như các điểm lưu trữ:
http://dev.mysql.com/doc/refman/5.6/vi/savepoint.html
Sau khi đọc qua hướng dẫn và báo cáo lỗi này, có vẻ như nếu các điểm lưu trữ được phát hành, họ sẽ giải phóng các khóa trên bàn đang hoạt động để có thể ngăn chặn các sự cố khóa đã thấy trên mysqldump gần đây như MySQL 5.5.
Tôi hy vọng điều này cung cấp thêm một chút cái nhìn sâu sắc về công cụ mydumper.