Los datos son probablemente el activo más valioso de una empresa, por lo que debe asegurarse de que estén seguros y se puedan restaurar en caso de falla. Las copias de seguridad son la forma básica de mantenerlo seguro en un Plan de recuperación de desastres (DRP), y debe estar preparado para restaurarlas si es necesario, por lo que una buena estrategia de copia de seguridad incluye una prueba de restauración de vez en cuando para asegurarse de que su copia de seguridad se pueda utilizar. .
En este blog, veremos cómo restaurar una copia de seguridad de PostgreSQL y TimescaleDB desde la CLI de ClusterControl usando la poderosa herramienta s9s.
ClusterControlCLI
También conocida como s9s, es una herramienta de línea de comandos introducida en ClusterControl versión 1.4.1 para interactuar, controlar y administrar clústeres de bases de datos mediante el sistema ClusterControl. ClusterControl CLI abre una nueva puerta para la automatización de clústeres donde puede integrarla fácilmente con herramientas de automatización de implementación existentes como Ansible, Puppet, Chef, etc. La herramienta de línea de comandos se invoca ejecutando un binario llamado s9s agregado de forma predeterminada en la instalación de ClusterControl.
Puede encontrar más información en la Documentación oficial o incluso ejecutando el comando s9s con el parámetro de ayuda:
$ 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.
Además, la herramienta s9s tiene una página de manual para cada comando para obtener información más detallada.
$ man s9s backup
Ahora que sabe qué es s9s, veamos cómo restaurar una copia de seguridad de PostgreSQL o TimescaleDB usándolo.
Restauración de copias de seguridad mediante CLI de ClusterControl
La herramienta que necesita usar para este trabajo es la copia de seguridad s9s. Se utiliza para ver, crear o restaurar copias de seguridad de la base de datos mediante la CLI de ClusterControl.
Uso
copia de seguridad s9s {opciones}
Donde las opciones son:
−−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.
Ejemplos
Lista de todas las copias de seguridad para el ID de clúster 42:
Aquí, debe especificar el ID del clúster para enumerar las copias de seguridad. Puede omitir este parámetro para enumerar la copia de seguridad creada en todos los clústeres.
$ s9s backup --list \
--cluster-id=42 \
--long

Restaurar copia de seguridad ID 22 en clúster ID 42:
Para esto, deberá especificar el ID de clúster donde restaurar la copia de seguridad y el ID de la copia de seguridad que se restaurará.
$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait

Verificación de copias de seguridad creadas
Cree un trabajo para verificar la copia de seguridad dada identificada por la ID de la copia de seguridad. El trabajo intentará instalar el software de la base de datos en el servidor de prueba usando la misma configuración que para el clúster dado, luego restaurará la copia de seguridad en este servidor de prueba. El trabajo devuelve OK solo si la copia de seguridad se restauró correctamente.
$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42

Si todo salió bien, verá:
La copia de seguridad 26 se verificó con éxito.
Conclusión
Como puede ver, con solo ejecutar un comando simple, puede verificar, restaurar o incluso verificar sus copias de seguridad de una manera fácil usando ClusterControl CLI.
Para obtener más información sobre la CLI de ClusterControl y su uso, puede consultar la Documentación oficial.