I dati sono probabilmente la risorsa più preziosa in un'azienda, quindi è necessario assicurarsi che siano al sicuro e possano essere ripristinati in caso di guasto. I backup sono il modo base per mantenerlo al sicuro in un Disaster Recovery Plan (DRP) ed è necessario essere preparati a ripristinarli se necessario, quindi una buona strategia di backup include un test di ripristino di tanto in tanto per assicurarsi che il backup sia utilizzabile .
In questo blog, vedremo come ripristinare un backup PostgreSQL e TimescaleDB dalla CLI ClusterControl utilizzando il potente strumento s9s.
CLI ClusterControl
Noto anche come s9s, è uno strumento da riga di comando introdotto in ClusterControl versione 1.4.1 per interagire, controllare e gestire i cluster di database utilizzando il sistema ClusterControl. ClusterControl CLI apre una nuova porta per l'automazione del cluster in cui è possibile integrarla facilmente con gli strumenti di automazione della distribuzione esistenti come Ansible, Puppet, Chef, ecc. Lo strumento della riga di comando viene richiamato eseguendo un binario chiamato s9s aggiunto per impostazione predefinita nell'installazione di ClusterControl.
Puoi trovare maggiori informazioni nella Documentazione Ufficiale o anche eseguendo il comando s9s con il parametro help:
$ s9s --help
Usage:
s9s COMMAND [OPTION...]
Where COMMAND is:
account - to manage accounts on clusters.
alarm - to manage alarms.
backup - to view, create and restore database backups.
cluster - to list and manipulate clusters.
controller - to manage Cmon controllers.
job - to view jobs.
maintenance - to view and manipulate maintenance periods.
metatype - to print metatype information.
node - to handle nodes.
process - to view processes running on nodes.
replication - to monitor and control data replication.
report - to manage reports.
script - to manage and execute scripts.
server - to manage hardware resources.
sheet - to manage spreadsheets.
user - to manage users.
Generic options:
-c, --controller=URL The URL where the controller is found.
--config-file=PATH Specify the configuration file for the program.
--help Show help message and exit.
-P, --controller-port INT The port of the controller.
-p, --password=PASSWORD The password for the Cmon user.
--private-key-file=FILE The name of the file for authentication.
--rpc-tls Use TLS encryption to controller.
-u, --cmon-user=USERNAME The username on the Cmon system.
-v, --verbose Print more messages than normally.
-V, --version Print version information and exit.
Formatting:
--batch No colors, no human readable, pure data.
--color=always|auto|never Sets if colors should be used in the output.
--date-format=FORMAT The format of the dates printed.
-l, --long Print the detailed list.
--log-file=PATH The path where the s9s client puts its logs.
--no-header Do not print headers.
--only-ascii Do not use UTF8 characters.
--print-json Print the sent/received JSon messages.
--print-request Print the sent JSon request message.
Job related options:
--job-tags=LIST Set job tags when creating a new job.
--log Wait and monitor job messages.
--recurrence=CRONTABSTRING Timing information for recurring jobs.
--schedule=DATE&TIME Run the job at the specified time.
--timeout=SECONDS Timeout value for the entire job.
--wait Wait until the job ends.
Inoltre, lo strumento s9s ha una pagina man per ogni comando per ottenere informazioni più dettagliate.
$ man s9s backup
Ora che sai cos'è s9s, vediamo come ripristinare un backup PostgreSQL o TimescaleDB utilizzandolo.
Ripristino dei backup utilizzando ClusterControl CLI
Lo strumento che devi usare per questo lavoro è il backup di s9s. Viene utilizzato per visualizzare, creare o ripristinare i backup del database utilizzando ClusterControl CLI.
Utilizzo
backup s9s {opzioni}
Dove sono le opzioni:
−−restore Restores an existing backup.
−−backup-id=ID The ID of the backup.
−−cluster-id=ID The ID of the cluster.
--verify Verify an existing backup on a test server.
--test-server=HOSTNAME Verify the backup by restoring on this server.
-l, --long Print the detailed list.
--wait Wait until the job ends.
--log Wait and monitor job messages.
Esempi
Elenca tutti i backup per l'ID cluster 42:
Qui è necessario specificare l'ID cluster per elencare i backup. Puoi omettere questo parametro per elencare il backup creato in tutti i cluster.
$ s9s backup --list \
--cluster-id=42 \
--long
Ripristina l'ID backup 22 sull'ID cluster 42:
Per questo, dovrai specificare Cluster-ID dove ripristinare il backup e Backup ID da ripristinare.
$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait
Verifica dei backup creati
Crea un lavoro per verificare il backup specificato identificato dall'ID backup. Il processo tenterà di installare il software del database sul server di test utilizzando le stesse impostazioni del cluster specificato, quindi ripristinerà il backup su questo server di test. Il processo restituisce OK solo se il backup viene ripristinato correttamente.
$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42
Se tutto è andato bene, vedrai:
Il backup 26 è stato verificato con successo.
Conclusione
Come puoi vedere, semplicemente eseguendo un semplice comando, puoi controllare, ripristinare o persino verificare i tuoi backup in modo semplice utilizzando ClusterControl CLI.
Per ulteriori informazioni sulla CLI ClusterControl e sul suo utilizzo, puoi seguire la Documentazione Ufficiale.