Отворете mysql команден прозорец и издайте тази команда:
mysql> FLUSH TABLES WITH READ LOCK;
Това ще заключи всички таблици във всички бази данни на този MySQL екземпляр, докато не издадете UNLOCK TABLES (или прекратете клиентската връзка, която държи тези заключвания за четене).
За да потвърдите това, можете да отворите друг команден прозорец и да опитате да направите ALTER , DROP , RENAME или TRUNCATE . Тези команди увисват, изчаквайки освобождаването на заключването за четене. Натиснете Ctrl-C, за да прекратите чакането.
Но докато таблиците имат заключване за четене, все пак можете да извършите mysqldump резервно копие.
FLUSH TABLES WITH READ LOCK команда може да бъде същото като използването на --lock-all-tables опция за mysqldump . Не е напълно ясно, но този документ
изглежда го поддържа:
И двете FLUSH TABLES WITH READ LOCK и --lock-all-tables използвайте израза "глобално заключване на четене", така че мисля, че е вероятно тези да правят същото. Следователно трябва да можете да използвате тази опция за mysqldump и защита срещу едновременни ALTER, DROP, RENAME и TRUNCATE.
Re. вашият коментар:Следното е от Guilhem Bichot в дневника за грешки на MySQL, към който сте се свързали:
От това изглежда, че не можете да получите едновременен достъп по време на архивиране и едновременно да блокирате ALTER, DROP, RENAME и TRUNCATE.