sql >> Databáze >  >> RDS >> Mysql

souběžnost mysqldump

No, to není jisté, z příručky Mysql :

Tato volba odešle na server příkaz START TRANSACTIONSQL před uložením dat. Je užitečný pouze s transakčními tabulkami, jako je InnoDBand BDB, protože pak vypíše konzistentní stav databáze v době, kdy byl vydán BEGIN, aniž by zablokoval jakékoli aplikace.

Při použití této možnosti byste měli mít na paměti, že pouze tabulky InnoDB jsou vypisovány v konzistentním stavu. Například jakákoli tabulka MyISAM nebo MEMORY vyprázdněná při použití této možnosti může stále změnit stav.

Zatímco výpis --single-transaction je v procesu, aby byl zajištěn platný soubor výpisu (správný obsah tabulky a souřadnice binárního protokolu), nemělo by žádné jiné připojení používat následující příkazy:ALTER TABLE, CREATE TABLE,DROP TABLE, RENAME TABLE, TRUNCATETABLE. Konzistentní čtení je od těchto příkazů izolováno, takže jejich použití v tabulce, která má být vypsána, může způsobit SELECT, který provede mysqldump k načtení obsahu tabulky k získání nesprávného obsahu nebo selže.

Volby --single-transaction a --lock-tables se vzájemně vylučují, protože LOCK TABLES způsobí, že všechny čekající transakce budou implicitně potvrzeny.

Tato volba není podporována pro tabulky MySQLCluster; nelze zaručit, že výsledky budou konzistentní, protože úložný modul NDBCLUSTER podporuje pouze úroveň izolace transakcí READ_COMMITTED. Vždy byste měli místo toho použít NDBbackup a obnovit.

Chcete-li vypsat velké tabulky, měli byste zkombinovat volbu --single-transaction s --quick.

Pokud chcete zálohovat/přesunout svou živou DB, měli byste zvážit replikace MySQL




  1. Jak vytvořit databázi zásob v Accessu

  2. MariaDB:Vlastní datový adresář:Vždy je třeba zachovat adresář /var/lib/mysql

  3. Jak přečíslovat sloupec v doktríně

  4. jak získat seznam názvů schémat databází MySql pomocí java JDBC