sql >> Databasteknik >  >> RDS >> Mysql

mysqldump samtidighet

Tja, det är inte säkert, från Mysql Manual :

Detta alternativ skickar en START TRANSACTIONSQL-sats till servern innan data dumpas. Det är endast användbart med transaktionstabeller som InnoDB och BDB, eftersom det då dumpar det konsekventa tillståndet för databasen vid tidpunkten när BEGIN utfärdades utan att blockera några applikationer.

När du använder det här alternativet bör du komma ihåg att endast InnoDB-tabeller dumpas i ett konsekvent tillstånd. Till exempel kan alla MyISAM- eller MEMORY-tabeller som dumpas när du använder det här alternativet fortfarande ändra tillstånd.

Medan en --single-transaction dump är i process, för att säkerställa en giltig dumpfil (korrekt tabellinnehåll och binära loggkoordinater), bör ingen annan anslutning använda följande påståenden:ALTER TABLE, CREATE TABLE,DOP TABLE, RENAME TABLE, TRUNCATETABLE. En konsekvent läsning är inte isolerad från dessa uttalanden, så användning av dem i en tabell som ska dumpas kan orsaka att SELECT som utförs av mysqldump för att hämta tabellinnehållet för att erhålla felaktigt innehåll eller misslyckas.

Alternativen --single-transaction och --lock-tables är ömsesidigt exklusiva eftersom LOCK TABLES gör att alla pågående transaktioner genomförs implicit.

Det här alternativet stöds inte för MySQLCluster-tabeller; resultaten kan inte garanteras vara konsekventa på grund av det faktum att NDBCLUSTER-lagringsmotorn endast stöder READ_COMMITTED-transaktionsisoleringsnivån. Du bör alltid använda NDBbackup och återställa istället.

För att dumpa stora tabeller bör du kombinera --single-transaction-alternativet med --quick.

Om du vill säkerhetskopiera/flytta din live-DB bör du överväga MySQL-replikering




  1. Välj distinkta rader samtidigt som du grupperar efter maxvärde

  2. hur ser man/skript definitioner av systemvyer?

  3. Problem med att visa MySQL-data på Android Studio med volley

  4. Har kapslade block någon prestandapåverkan i PL/SQL-procedurer?