Sử dụng --single-transaction
để tránh khóa bảng trên bảng InnoDB.
Bạn thực sự không thể làm gì về MyISAM, mặc dù bạn thực sự không nên sử dụng MyISAM. Cách giải quyết tốt nhất là tạo một bản sao đã đọc và tạo các bản sao lưu từ bản sao để các ổ khóa không ảnh hưởng đến ứng dụng.
Những gì bạn sẽ thấy là trong khi một bản sao lưu đang chạy, một READ LOCAL
khóa được giữ trên các bảng trong cơ sở dữ liệu duy nhất hiện đang được sao lưu, có nghĩa là bạn có thể đọc từ các bảng nhưng việc ghi (chèn / cập nhật / xóa) sẽ chặn ngoại trừ một số chèn nhất định trên MyISAM có thể đạt được mà không làm ảnh hưởng đến khóa. Những người có thể được cho phép. Cách dễ nhất để biết điều này đang xảy ra là liên tục truy vấn SHOW FULL PROCESSLIST;
để tìm các chuỗi đang chặn.