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.