Os dados são provavelmente o ativo mais valioso de uma empresa, portanto, você precisa ter certeza de que estão seguros e podem ser restaurados em caso de falha. Os backups são a maneira básica de mantê-lo seguro em um Plano de Recuperação de Desastres (DRP), e você precisa estar preparado para restaurá-los, se necessário, portanto, uma boa estratégia de backup inclui um teste de restauração de tempos em tempos para garantir que seu backup seja utilizável .
Neste blog, veremos como restaurar um backup do PostgreSQL e do TimescaleDB da CLI do ClusterControl usando a poderosa ferramenta s9s.
ClusterControl CLI
Também conhecido como s9s, é uma ferramenta de linha de comando introduzida no ClusterControl versão 1.4.1 para interagir, controlar e gerenciar clusters de banco de dados usando o sistema ClusterControl. ClusterControl CLI abre uma nova porta para automação de cluster, onde você pode integrá-lo facilmente com ferramentas de automação de implantação existentes, como Ansible, Puppet, Chef, etc. A ferramenta de linha de comando é invocada executando um binário chamado s9s adicionado por padrão na instalação do ClusterControl.
Você pode encontrar mais informações na Documentação Oficial ou até mesmo executando o comando s9s com o parâmetro 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.
Além disso, a ferramenta s9s possui uma página man para cada comando para obter informações mais detalhadas.
$ man s9s backup
Agora que você sabe o que é s9s, vamos ver como restaurar um backup do PostgreSQL ou TimescaleDB usando-o.
Restaurando backups usando a CLI do ClusterControl
A ferramenta que você precisa usar para este trabalho é o backup s9s. Ele é usado para visualizar, criar ou restaurar backups de banco de dados usando a CLI do ClusterControl.
Uso
backup s9s {opções}
Onde as opções são:
−−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.
Exemplos
Lista todos os backups do cluster ID 42:
Aqui, você precisa especificar o ID do cluster para listar os backups. Você pode omitir esse parâmetro para listar o backup criado em todos os clusters.
$ s9s backup --list \
--cluster-id=42 \
--long
Restaurar o ID de backup 22 no cluster ID 42:
Para isso, você precisará especificar Cluster-ID onde restaurar o backup e Backup ID a ser restaurado.
$ s9s backup --restore \
--cluster-id=42 \
--backup-id=22 \
--wait
Verificando backups criados
Crie uma tarefa para verificar o backup fornecido identificado pelo ID do backup. A tarefa tentará instalar o software de banco de dados no servidor de teste usando as mesmas configurações do cluster fornecido e, em seguida, restaurará o backup nesse servidor de teste. A tarefa retorna OK somente se o backup for restaurado com sucesso.
$ s9s backup --verify \
--log \
--backup-id=26 \
--test-server=10.10.10.138 \
--cluster-id=42
Se tudo correu bem, você verá:
O backup 26 foi verificado com sucesso.
Conclusão
Como você pode ver, apenas executando um comando simples, você pode verificar, restaurar ou até mesmo verificar seus backups de maneira fácil usando a CLI do ClusterControl.
Para mais informações sobre o ClusterControl CLI e seu uso, você pode seguir a Documentação Oficial.