MariaDB Enterprise Backup è una soluzione di backup di MariaDB Corporation con una serie di funzionalità come backup non bloccanti, backup completo, backup incrementale, backup parziale e Point in Time Recovery.
Spesso riceviamo domande sulle differenze tra MariaDB Backup e le funzionalità di gestione del backup di ClusterControl. Ecco di cosa tratta questo blog.
Creare backup anziché gestirli
MariaDB Backup è un fork di Percona XtraBackup ed è uno strumento per eseguire backup fisici del server MariaDB. Ti consente di eseguire operazioni come backup completi, incrementali e parziali. Si può anche eseguire il ripristino temporizzato con l'aiuto di registri binari. Secondo la documentazione, la versione "Enterprise" del backup di MariaDB fornisce il "tracciamento delle istruzioni DDL, che riduce i tempi di blocco durante i backup".
ClusterControl supporta MariaDB Backup come metodo di backup per MariaDB. Fornisce un'interfaccia utente grafica per pianificare backup completi, backup incrementali e backup parziali ed eseguire il ripristino dei file di backup o automatizza anche il ripristino temporizzato. Inoltre, ClusterControl fornisce funzionalità come crittografia, compressione, caricamento su cloud storage (Azure, AWS, Google Cloud) e verifica automatica dei backup per garantire che siano ripristinabili.
Backup e ripristino completi
Per eseguire il backup completo utilizzando MariaDB Enterprise Backup, puoi utilizzare le utilità di comando mariabackup. Ci sono 4 input di parametri dopo il comando mariabackup. I parametri sono :
- Backup - questo viene utilizzato per il backup del database utilizzando le utilità di mariabackup.
- Prepara - per eseguire un backup coerente point-in-time, è necessario preparare il backup dopo l'esecuzione del backup non elaborato.
- Copyback - utilizzato per ripristinare il backup estratto nella directory dei dati predefinita di mysql. Copierà il backup nella directory mysql, senza rimuovere il backup originale.
- Torna indietro - usato per ripristinare il backup estratto nella directory dei dati mysql spostando tutte le directory di backup.
Se si desidera eseguire il backup e il ripristino, è sufficiente passare il parametro obbligatorio dopo il comando mariabackup. Per un comando di backup completo, di seguito è riportato uno script di esempio che utilizza MariaDB Backup.
mariabackup --backup --target-dir=/backup/full/ --user=bkpuser --password=p4sswordb4ckup
Ci sono alcune opzioni che devi definire, come --target-dir, che è la posizione di destinazione per i file di backup, --user, usato per gli utenti con credenziali per il backup, e --password per la password di backup delle credenziali.
Per fare in modo che il backup diventi coerente in base al tempo, è necessario eseguire la preparazione al termine del backup completo. I file di dati non sono coerenti finché non esegui la preparazione, perché quando esegui il backup, i file di dati sono stati copiati in momenti diversi durante il backup.
Per eseguire prepara il backup:
mariabackup --prepare --target-dir=/backup/full
Dopo aver eseguito la preparazione, il backup sarà pronto per essere ripristinato. Vedrai il messaggio nell'ultima riga come di seguito, quando la preparazione è andata a buon fine.
InnoDB: Shutdown completed; log sequence number 9553231
Puoi eseguire il comando di ripristino usando il copy-back. Ecco lo script di esempio per ripristinare il backup:
mariabackup --copy-back --target-dir=/backup/full
Puoi inserire lo script sopra in un comando di script della shell e dare il permesso eseguibile, configurarlo sullo scheduler del sistema operativo.
Backup e ripristino con ClusterControl Gestione backup è molto facile da usare. ClusterControl supporta il backup logico e il backup fisico. Per il backup logico, ClusterControl utilizza mysqldump e per il backup fisico utilizza mariabackup backup completo e incrementale.
Ci sono due opzioni su come eseguire il backup; puoi creare il backup direttamente oppure puoi programmare il backup.
Puoi anche abilitare alcune opzioni come crittografia, compressione, thread di copia parallela come mostrato di seguito:
Il ripristino del backup è facile come il backup è stato creato. Devi solo selezionare il file di backup completo che desideri ripristinare.
Ci sono due opzioni su come si desidera ripristinare il backup; puoi ripristinare il backup sui nodi in cui è stato eseguito il backup oppure puoi ripristinare il backup su un host autonomo dedicato.
Backup e ripristino incrementali
Effettuare un backup completo di un database molto grande richiederà tempo e risorse. Il backup incrementale viene utilizzato per eseguire il backup delle modifiche dopo l'esecuzione dell'ultimo backup completo.
Quando il backup incrementale è in esecuzione, MariaDB Enterprise Backup confronterà il backup completo o il backup incrementale precedente per trovare le ultime modifiche.
mariabackup --backup --incremental-basedir=/backup/full --target-dir=/backup/incr --user=bkpuser --password=p4sswordb4ackup
Prima di eseguire il backup incrementale, è necessario assicurarsi che sia stato preparato il backup completo. Successivamente, puoi eseguire il backup incrementale, applicandolo all'ultimo backup completo.
mariabackup --prepare --target-dir=/backup/full --incremental-dir=/backup/incr
Dopo che il backup incrementale è stato applicato al backup completo, la directory di backup completo avrà ora tutti i dati di backup preparati.
Il ripristino del backup completo preparato con tutte le modifiche incrementali può essere eseguito tramite:
mariabackup --copy-back --target-dir=/backup/full
Per eseguire il backup incrementale in ClusterControl, puoi scegliere mariabackup incrementale. È necessario disporre del backup completo preparato prima di eseguire il backup incrementale.
ClusterControl troverà automaticamente il backup completo più vicino quando esegui il backup incrementale. E per ripristinare il backup, puoi scegliere il backup completo e il ripristino preparati. Ti verrà chiesto come ripristinare il backup, sul nodo o sull'host autonomo. Ripristinerà il backup comprese le modifiche incrementali.
Backup e ripristino parziale
Il backup parziale specifica di quale database o tabella si desidera eseguire il backup. È possibile scegliere un elenco di database e tabelle di cui eseguire il backup oppure escludere alcuni database e tabelle dal backup. Le opzioni includono:--databases, --databases-exclude, --tables, --tables-exclude
Di seguito è riportato uno script di esempio per eseguire il backup parziale, per la tabella card_data.
mariabackup --backup --target-dir=/backup/partial --user=bkpuser --password=p4sswordb4ckup --tables=card_data
Devi comunque preparare il backup parziale completo per rendere coerente il backup point-in-time eseguendo il comando seguente:
mariabackup --prepare --export --target-dir=/backup/partial
L'esecuzione del ripristino parziale è molto diversa rispetto al ripristino del backup completo e del backup incrementale. È necessario preparare le tabelle e il database nel server MariaDB in esecuzione, quindi copiare manualmente i file di dati nella directory dei dati mysql.
Ad esempio, vuoi eseguire un ripristino parziale per la tabella card_data (tabella non partizionata).
- Crea la tabella vuota di card_data con la stessa struttura nel database di destinazione
- Esegui il tablespace DISCARD sul tavolo card_data.
ALTER TABLE carddb.card_data DISCARD TABLESPACE;
- Copia i file di dati nella directory dei dati mysql
cp /backup/partial/carddb/card_data.* /var/lib/mysql/carddb
- Cambia il proprietario dei file diventando mysql
chown mysql:mysql /var/lib/mysql/carddb/card_data.*
- Ultima cosa, importa il tablespace:
ALTER TABLE carddb.card_data IMPORT TABLESPACE;
Il backup parziale in ClusterControl è molto semplice, devi solo abilitare l'opzione Backup parziale. Ti darà la possibilità di includere o escludere database e tabelle come mostrato di seguito:
La parte successiva è simile al backup completo e al backup incrementale, puoi scegli impostazioni come crittografia e compressione.
Il ripristino del backup parziale è esattamente lo stesso di quando ripristiniamo il backup completo. Devi solo scegliere il backup parziale e il resto sarà gestito da ClusterControl.
Recupero puntuale
Il ripristino del backup completo o incrementale fornisce un backup dal momento in cui è stato eseguito il backup, ma non fornisce alcun dato dopo l'esecuzione del backup. Queste modifiche sarebbero nel registro binario. Quando esegui il backup preparato con binlog abilitato, ci sarà un file chiamato xtrabackup_binlog_info. Il file contiene un file di registro binario e la posizione dell'ultimo numero di sequenza.
Puoi eseguire il ripristino temporizzato estraendo le modifiche in SQL, come dopo che il ripristino è stato eseguito. Puoi eseguire mysqlbinlog per estrarre l'ora specifica nel nodo del database di origine e applicare l'SQL nel nodo del database di destinazione/ripristinato.
Point in Time Recovery (PITR) in ClusterControl può essere abilitato come mostrato di seguito:
Devi definire fino a che punto ripristinare, sono supportate due opzioni che sono basati sul tempo o sulla posizione. Per la base del tempo, devi solo inserire l'ora esatta in cui i dati verranno ripristinati. Per la posizione basata, è necessario compilare il nome e la posizione del binlog. Il resto del ripristino è simile.
Conclusione
Per ora è tutto. Come abbiamo visto sopra, MariaDB Backup è uno strumento carino con molte opzioni. ClusterControl fornisce una GUI facile da usare per eseguire le procedure di backup. Aggiunge inoltre una serie di funzionalità come crittografia, compressione, pianificazione, gestione della conservazione e verifica automatica del backup.