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

Suggerimenti per la gestione del backup per TimescaleDB

Le informazioni sono una delle risorse più preziose in un'azienda e va da sé che si dovrebbe avere un piano di ripristino di emergenza (DRP) per prevenire la perdita di dati in caso di incidente o guasto dell'hardware. Un backup è la forma più semplice di DR. Potrebbe non essere sempre sufficiente per garantire un Recovery Point Objective (RPO) accettabile, ma è un buon primo approccio.

Che si tratti di un server con carichi elevati 24 ore su 24, 7 giorni su 7 o di un ambiente con un volume di transazioni ridotto, sarà necessario rendere i backup una procedura senza interruzioni senza interrompere le prestazioni del server in un ambiente di produzione.

Se parliamo di TimescaleDB, esistono diversi tipi di backup per questo nuovo motore per i dati delle serie temporali. Il tipo di backup che dovremmo utilizzare dipende da molti fattori, come l'ambiente, l'infrastruttura, il carico, ecc.

In questo blog vedremo questi diversi tipi di backup disponibili e come ClusterControl può aiutarci a centralizzare la nostra gestione dei backup per TimescaleDB.

Tipi di backup

Esistono diversi tipi di backup per i database. Diamo un'occhiata a ciascuno di essi in dettaglio.

  • Logico:il backup è archiviato in un formato leggibile come SQL.
  • Fisico:il backup contiene dati binari.
  • Completo/Incrementale/Differenziale:la definizione di questi tre tipi di backup è implicita nel nome. Il backup completo è una copia completa di tutti i tuoi dati. Il backup incrementale esegue il backup solo dei dati che sono stati modificati rispetto al backup precedente e il backup differenziale contiene solo i dati che sono stati modificati dall'ultimo backup completo eseguito. I backup incrementali e differenziali sono stati introdotti per ridurre la quantità di tempo e l'utilizzo dello spazio su disco necessari per eseguire un backup completo.
  • Compatibile con il Point In Time Recovery:PITR Implica il ripristino del database in un dato momento nel passato. Per poterlo fare, dovremo ripristinare un backup completo, quindi applicare tutte le modifiche avvenute dopo il backup fino a poco prima dell'errore.

Funzione di gestione del backup di ClusterControl

Vediamo come ClusterControl può aiutarci a gestire diversi tipi di backup.

Creazione di un backup

Per questa attività, vai su ClusterControl -> Seleziona Cluster TimescaleDB -> Backup -> Crea backup .

Possiamo creare un nuovo backup o configurarne uno pianificato. Per il nostro esempio, creeremo istantaneamente un singolo backup.

Qui abbiamo un metodo per ogni tipo di backup menzionato in precedenza.

Tipo di backup Strumento Definizione
Logico pg_dumpall È un'utilità per scrivere tutti i database TimescaleDB di un cluster in un file di script. Il file di script contiene comandi SQL che possono essere utilizzati per ripristinare i database.
Fisico pg_basebackup Viene utilizzato per eseguire una copia binaria dei file del cluster di database, assicurandosi che il sistema venga automaticamente attivato e disattivato dalla modalità di backup. Vengono sempre eseguiti backup dell'intero cluster di database di un cluster di database TimescaleDB in esecuzione. Questi vengono presi senza influenzare altri client nel database.
Completo/Incremento/Diff pgschienale Si tratta di una soluzione di backup e ripristino semplice e affidabile in grado di scalare senza problemi fino ai database e ai carichi di lavoro più grandi utilizzando algoritmi ottimizzati per i requisiti specifici del database. Una delle funzionalità più importanti è il supporto per backup completi, incrementali e differenziali.
PITR pg_basebackup+WAL Per creare un backup compatibile con PITR, ClusterControl utilizzerà pg_basebackup e i file WAL, per poter ripristinare il database in qualsiasi momento del passato.

Dobbiamo scegliere un metodo, il server da cui verrà eseguito il backup e dove vogliamo archiviare il backup. Possiamo anche caricare il nostro backup sul cloud (AWS, Google o Azure) abilitando il pulsante corrispondente.

Tieni presente che se vuoi creare un backup compatibile con PITR, dobbiamo usare pg_basebackup in questo passaggio e dobbiamo prendere il backup dal nodo master.

Quindi specifichiamo l'uso della compressione, della crittografia e della conservazione del nostro backup.

Nella sezione di backup, possiamo vedere lo stato di avanzamento del backup e informazioni come il metodo, le dimensioni, la posizione e altro.

Abilitazione del recupero temporizzato

Se vogliamo utilizzare la funzione PITR, dobbiamo avere l'archiviazione WAL abilitata. Per questo possiamo andare su ClusterControl -> Select TimescaleDB Cluster -> Node actions -> Enable WAL Archiving oppure vai su ClusterControl -> Seleziona Cluster TimescaleDB -> Backup -> Impostazioni e abilita l'opzione "Abilita ripristino temporizzato (archiviazione WAL) ” come vedremo nell'immagine seguente.

Dobbiamo tenere presente che per abilitare l'archiviazione WAL, dobbiamo riavviare il nostro database. ClusterControl può farlo anche per noi.

Oltre alle opzioni comuni a tutti i backup come "Directory di backup ” e il “Periodo di conservazione del backup ”, qui possiamo anche specificare il periodo di conservazione WAL. Per impostazione predefinita è 0, che significa per sempre.

Per confermare che l'archiviazione WAL è abilitata, possiamo selezionare il nostro nodo principale in ClusterControl -> Seleziona cluster TimescaleDB -> Nodi e dovremmo vedere il messaggio WAL Archiving Enabled, come possiamo vedere nell'immagine seguente.

Ripristino di un backup

Una volta terminato il backup, possiamo ripristinarlo utilizzando ClusterControl. Per questo, nella nostra sezione di backup (ClusterControl -> Select TimescaleDB Cluster -> Backup ), possiamo selezionare "Ripristina backup" o direttamente "Ripristina" sul backup che vogliamo ripristinare.

Abbiamo tre opzioni per ripristinare il backup. Possiamo ripristinare il backup in un nodo di database esistente, ripristinare e verificare il backup su un host autonomo o creare un nuovo cluster dal backup.

Se stiamo cercando di ripristinare un backup compatibile con PITR, dobbiamo anche specificare l'ora.

I dati verranno ripristinati come erano all'ora specificata. Tieni presente che viene utilizzato il fuso orario UTC e che il nostro servizio TimescaleDB nel master verrà riavviato.

Possiamo monitorare l'avanzamento del nostro ripristino dalla sezione Attività nel nostro ClusterControl.

Verifica automatica del backup

Un backup non è un backup se non è ripristinabile. La verifica dei backup è qualcosa che di solito viene trascurato da molti. Vediamo come ClusterControl può automatizzare la verifica dei backup di TimescaleDB ed evitare sorprese.

In ClusterControl, seleziona il tuo cluster e vai a "Backup ", quindi seleziona “Crea backup ”.

La funzione di verifica automatica del backup è disponibile per i backup pianificati. Quindi, scegliamo "Programma backup opzione ".

Quando si pianifica un backup, oltre a selezionare le opzioni comuni come il metodo o l'archiviazione, è necessario specificare anche la pianificazione/frequenza.

Nel passaggio successivo, possiamo comprimere e crittografare il nostro backup e specificare il periodo di conservazione. Qui abbiamo anche il "Verifica backup funzione ".

Per utilizzare questa funzionalità, abbiamo bisogno di un host (o VM) dedicato che non faccia parte del cluster.

ClusterControl installerà il software e ripristinerà il backup in questo host. Dopo il ripristino, possiamo vedere l'icona di verifica nella sezione Backup ClusterControl.

Conclusione

Al giorno d'oggi, i backup sono obbligatori in qualsiasi ambiente. Ti aiutano a proteggere i tuoi dati. I backup incrementali possono aiutare a ridurre la quantità di tempo e spazio di archiviazione utilizzati per il processo di backup. I registri delle transazioni sono importanti per il recupero point-in-time. ClusterControl può aiutare ad automatizzare il processo di backup dei database TimescaleDB e, in caso di guasto, ripristinarlo con pochi clic. Inoltre, puoi ridurre al minimo l'RPO utilizzando il backup compatibile con PITR e migliorare il tuo piano di ripristino di emergenza.