Mysql
 sql >> Database >  >> RDS >> Mysql

tabelle di blocco dei test di mysqldump

Usa --single-transaction per evitare i blocchi delle tabelle sulle tabelle InnoDB.

Non c'è niente che tu possa fare davvero su MyISAM, anche se in realtà non dovresti usare MyISAM. La soluzione migliore è creare una replica di lettura ed eseguire backup dalla replica in modo che i blocchi non influiscano sull'applicazione.

Quello che dovresti trovare è che mentre un backup è in esecuzione, un READ LOCAL il blocco è mantenuto sulle tabelle nel singolo database di cui è attualmente in corso il backup, il che significa che puoi leggere dalle tabelle ma le scritture (inserisci/aggiorna/elimina) bloccheranno tranne alcuni inserti su MyISAM che si possono realizzare senza disturbare la serratura. Quelli possono essere consentiti. Il modo più semplice per vedere che ciò accada è interrogare ripetutamente SHOW FULL PROCESSLIST; per trovare i thread che stanno bloccando.