PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Restauration de sauvegarde PostgreSQL et TimescaleDB à l'aide de la CLI ClusterControl

Les données sont probablement l'actif le plus précieux d'une entreprise, vous devez donc vous assurer qu'elles sont sécurisées et peuvent être restaurées en cas de panne. Les sauvegardes sont le moyen de base pour le garder en sécurité dans un plan de reprise après sinistre (DRP), et vous devez être prêt à les restaurer si nécessaire, donc une bonne stratégie de sauvegarde comprend un test de restauration de temps en temps pour vous assurer que votre sauvegarde est utilisable .

Dans ce blog, nous verrons comment restaurer une sauvegarde PostgreSQL et TimescaleDB à partir de la CLI ClusterControl à l'aide du puissant outil s9s.

ClusterControl CLI

Également connu sous le nom de s9s, est un outil de ligne de commande introduit dans ClusterControl version 1.4.1 pour interagir, contrôler et gérer des clusters de bases de données à l'aide du système ClusterControl. ClusterControl CLI ouvre une nouvelle porte pour l'automatisation de cluster où vous pouvez facilement l'intégrer aux outils d'automatisation de déploiement existants comme Ansible, Puppet, Chef, etc. L'outil de ligne de commande est appelé en exécutant un binaire appelé s9s ajouté par défaut dans l'installation de ClusterControl.

Vous pouvez trouver plus d'informations dans la documentation officielle ou même en exécutant la commande s9s avec le paramètre 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.

De plus, l'outil s9s a une page de manuel pour chaque commande afin d'obtenir des informations plus détaillées.

$ man s9s backup

Maintenant que vous savez ce qu'est s9s, voyons comment restaurer une sauvegarde PostgreSQL ou TimescaleDB en l'utilisant.

Restauration des sauvegardes à l'aide de la CLI ClusterControl

L'outil que vous devez utiliser pour ce travail est la sauvegarde s9s. Il est utilisé pour afficher, créer ou restaurer des sauvegardes de base de données à l'aide de la CLI ClusterControl.

Utilisation

sauvegarde s9s {options}

Où sont les options :

−−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.

Exemples

Répertorier toutes les sauvegardes pour l'ID de cluster 42 :

Ici, vous devez spécifier l'ID de cluster pour répertorier les sauvegardes. Vous pouvez omettre ce paramètre pour répertorier la sauvegarde créée dans tous les clusters.

$ s9s backup --list \
--cluster-id=42 \
--long

Restaurer l'ID de sauvegarde 22 sur l'ID de cluster 42 :

Pour cela, vous devrez spécifier l'ID de cluster où restaurer la sauvegarde et l'ID de sauvegarde à restaurer.

$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait

Vérification des sauvegardes créées

Créez une tâche pour vérifier la sauvegarde donnée identifiée par l'ID de sauvegarde. Le travail tentera d'installer le logiciel de base de données sur le serveur de test en utilisant les mêmes paramètres que pour le cluster donné, puis restaurera la sauvegarde sur ce serveur de test. La tâche renvoie OK uniquement si la sauvegarde est restaurée avec succès.

$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42

Si tout s'est bien passé, vous verrez :

La sauvegarde 26 a été vérifiée avec succès.

Conclusion

Comme vous pouvez le voir, en exécutant une simple commande, vous pouvez vérifier, restaurer ou même vérifier vos sauvegardes de manière simple à l'aide de ClusterControl CLI.

Pour plus d'informations sur la CLI ClusterControl et son utilisation, vous pouvez suivre la documentation officielle.