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

mysqldump samtidighed

Nå, det er ikke sikkert, fra Mysql Manual :

Denne indstilling sender en START TRANSACTIONSQL-sætning til serveren før datadumping. Det er kun nyttigt med transaktionstabeller såsom InnoDB og BDB, fordi det så dumper databasens konsistente tilstand på det tidspunkt, hvor BEGIN blev udstedt, uden at blokere nogen applikationer.

Når du bruger denne mulighed, skal du huske på, at kun InnoDB-tabeller dumpes i en konsistent tilstand. For eksempel kan alle MyISAM- eller MEMORY-tabeller, der dumpes, mens du bruger denne mulighed, stadig ændre tilstand.

Mens en --single-transaction dump er i proces, for at sikre en gyldig dumpfil (korrekt tabelindhold og binære log-koordinater), bør ingen anden forbindelse bruge følgende udsagn:ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATETABLE. En konsekvent læsning er ikke isoleret fra disse udsagn, så brug af dem på en tabel, der skal dumpes, kan forårsage, at SELECT, der udføres af mysqldump, for at hente tabelindholdet for at opnå forkert indhold eller mislykkes.

Indstillingen --single-transaction og --lock-tables er gensidigt eksklusiv, fordi LOCK TABLES forårsager, at alle afventende transaktioner implicit udføres.

Denne indstilling understøttes ikke for MySQLCluster-tabeller; resultaterne kan ikke garanteres at være konsistente på grund af det faktum, at NDBCLUSTER-lagringsmotoren kun understøtter READ_COMMITTED-transaktionsisolationsniveauet. Du bør altid bruge NDBbackup og gendan i stedet.

For at dumpe store tabeller bør du kombinere --single-transactionoptionen med --quick.

Hvis du vil sikkerhedskopiere/flytte din live DB, bør du overveje MySQL-replikering




  1. Hvordan ændres standardsprog for SQL Server?

  2. Laravel 5 Oprettelse af en ny post, der hører til 3 andre borde

  3. Hvordan opdager man, om Oracle-databasen understøtter automatisk stigning?

  4. Hvordan fjerner man HTML-tags fra en streng i SQL Server?