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

mysqldump concorrenza

Bene, non è sicuro, da Manuale di MySQL :

Questa opzione invia un'istruzione START TRANSACTIONSQL al server prima di eseguire il dump dei dati. È utile solo con tabelle transazionali come InnoDB e BDB, perché in questo modo esegue il dump dello stato coerente del database al momento dell'emissione di BEGIN senza bloccare le applicazioni.

Quando si utilizza questa opzione, è necessario tenere presente che solo le tabelle InnoDB vengono scaricate in uno stato coerente. Ad esempio, qualsiasi tabella MyISAM o MEMORY scaricata durante l'utilizzo di questa opzione può ancora cambiare stato.

Mentre è in corso un dump --single-transaction, per garantire un file dump valido (contenuto della tabella e coordinate binarie del registro corretti), nessun'altra connessione deve utilizzare le seguenti istruzioni:ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATETABLE. Una lettura coerente non è isolata da tali istruzioni, quindi il loro utilizzo su una tabella da scaricare può causare il SELECT eseguito da mysqldump per recuperare i contenuti della tabella per ottenere contenuti errati o fallire.

L'opzione --single-transaction e l'opzione --lock-tables si escludono a vicenda perché LOCK TABLES fa sì che tutte le transazioni in sospeso vengano impegnate in modo implicito.

Questa opzione non è supportata per le tabelle MySQLCluster; i risultati non possono essere garantiti per essere coerenti a causa del fatto che il motore di archiviazione NDBCLUSTER supporta solo il livello di isolamento della transazione READ_COMMITTED. Dovresti sempre usare NDBbackup e ripristinare invece.

Per eseguire il dump di tabelle di grandi dimensioni, dovresti combinare --single-transactionoption con --quick.

Se desideri eseguire il backup/spostare il tuo DB live, dovresti considerare Replica MySQL