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

Ripristino del backup PostgreSQL e TimescaleDB utilizzando ClusterControl CLI

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.