PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Restauração de backup PostgreSQL e TimescaleDB usando CLI ClusterControl

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.