Best practice per eseguire il backup del server MySQL:
Replica MySQL
Replica dell'installazione in MySQL. Dovrai installare il server Master e Slave. Tutte le scritture in lettura nel DB potrebbero essere indirizzate allo Slave Server. Il vantaggio di avere la replica è che puoi eseguire un backup dal tuo server slave senza interrompere il server Master, la tua applicazione continuerà a funzionare su Master senza tempi di inattività.
Utilizzando MySQL Dump
Se il tuo set di dati è piccolo (mi rendo conto che "piccolo" è un termine relativo .. per qualificarlo, diciamo <10 GB), probabilmente mysqldump funzionerà alla grande. È facile, è online ed è molto flessibile. Solo poche cose che mysqldump può fare: eseguire il backup di tutto o solo alcuni database o tabelle eseguono il backup solo del DDL ottimizza il dump per un ripristino più veloce che rende il file sql risultante più compatibile con altri RDBMS e molte altre cose.
Tuttavia, le opzioni più importanti sono correlate alla coerenza del backup. Le mie opzioni preferite sono: - Single-Transaction: questa opzione fornisce un backup coerente, se (e solo se) le tabelle utilizzano il motore di archiviazione InnoDB. Se si dispone di tabelle MyISAM non di sola lettura, non utilizzare questa opzione durante il backup. --master-data = 2: questa opzione assicurerà che il tuo dump sia coerente (facendo un lock-all-tables a meno che tu non abbia aggiunto l'opzione --single-transazione). L'opzione --master-data registra anche la posizione del registro binario nel file di dump risultante (= 2 fa sì che questa riga sia un commento nel file di dump)
Nota finale su mysqldump: tenere presente che il tempo di ripristino potrebbe essere significativamente più lungo del tempo di backup. Dipenderà da diversi fattori, ad esempio quanti indici hai.
Istantanea LVM
Per quelli che hanno set di dati più grandi, un backup fisico è la strada da percorrere. Sebbene sia possibile eseguire un backup a freddo (ad esempio, arrestare il servizio MySQL, copiare la directory dei dati, riavviare il servizio), molte persone non vogliono tempi di inattività. La mia soluzione preferita sono le istantanee. Può essere caldo (per InnoDB) o richiedere un breve blocco (per MyISAM). Non dimenticare di includere tutti i tuoi dati (includi ib_logfiles). Lenz fornisce una bella utility per aiutare con questo: http://www.lenzg.net/mylvmbackup/
Utilizzo di MySQL Enterprise Backup
Vantaggi dell'utilizzo di MySQL Enterprise Backup:
- I backup "a caldo" delle tabelle InnoDB vengono eseguiti interamente online, senza bloccare il backup solo di tabelle o spazi di tabelle particolari
- Esegui solo il backup dei dati modificati dopo un backup precedente
- Compressed Backup - Risparmia fino al 90% di archiviazione e molti altri ..
Riferimento:
http://www.mysql.com/products/enterprise/backup/features.html
http://www.mysql.com/products/enterprise/backup.html
--single-transaction
ma non dimenticare di aggiungere--events --routines
e lo uso sempre--triggers
, anche se è abilitato per impostazione predefinita, poiché può essere disabilitato in my.cnf. Direi che è quasi sempre buono usarli come pratica standard, sia che tu abbia attualmente questi tipi di oggetti nel tuo database o meno.