Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите правилен дъмп с помощта на mysqldump и единична транзакция, когато DDL се използва едновременно?

Отворете 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо да премахвате init_command set engine=INNODB на django DATABASE_OPTIONS след създаване на таблица?

  2. MySQL драйвер за Rails в Windows 7 x64

  3. SQLException:методът executeQuery не може да се използва за актуализиране

  4. Как да проверите размера на базата данни и таблиците на MySQL

  5. Множество външни ключа в една таблица към една друга таблица в mysql