Database
 sql >> Base de Dados >  >> RDS >> Database

Dicas de gerenciamento de backup para TimescaleDB


A informação é um dos ativos mais valiosos de uma empresa, e nem é preciso dizer que se deve ter um Plano de Recuperação de Desastres (DRP) para evitar a perda de dados em caso de acidente ou falha de hardware. Um backup é a forma mais simples de DR. Pode nem sempre ser suficiente para garantir um objetivo de ponto de recuperação (RPO) aceitável, mas é uma boa primeira abordagem.

Seja um servidor altamente carregado 24 horas por dia, 7 dias por semana ou um ambiente de baixo volume de transações, você precisará tornar os backups um procedimento contínuo sem interromper o desempenho do servidor em um ambiente de produção.

Se falamos de TimescaleDB, existem diferentes tipos de backup para esse novo mecanismo de dados de séries temporais. O tipo de backup que devemos usar depende de muitos fatores, como ambiente, infraestrutura, carga, etc.

Neste blog, veremos esses diferentes tipos de backups disponíveis e como o ClusterControl pode nos ajudar a centralizar nosso gerenciamento de backup para TimescaleDB.

Tipos de backup


Existem diferentes tipos de backups para bancos de dados. Vejamos cada um deles em detalhes.
  • Lógico:o backup é armazenado em um formato legível como SQL.
  • Físico:o backup contém dados binários.
  • Completo/Incremental/Diferencial:A definição desses três tipos de backup está implícita no nome. O backup completo é uma cópia completa de todos os seus dados. O backup incremental faz backup apenas dos dados que foram alterados desde o backup anterior e o backup diferencial contém apenas os dados que foram alterados desde o último backup completo executado. Os backups incrementais e diferenciais foram introduzidos como uma forma de diminuir o tempo e o uso do espaço em disco necessários para realizar um backup completo.
  • Compatível com Recuperação Point In Time:PITR Envolve a restauração do banco de dados a qualquer momento no passado. Para poder fazer isso, precisaremos restaurar um backup completo e, em seguida, aplicar todas as alterações que ocorreram após o backup até antes da falha.

Recurso de gerenciamento de backup do ClusterControl


Vamos ver como o ClusterControl pode nos ajudar a gerenciar diferentes tipos de backups.

Criando um backup


Para esta tarefa, vá para ClusterControl -> Select TimescaleDB Cluster -> Backup -> Create Backup .

Podemos criar um novo backup ou configurar um agendado. Para o nosso exemplo, criaremos um único backup instantaneamente.

Aqui temos um método para cada tipo de backup que mencionamos anteriormente.
Tipo de backup Ferramenta Definição
Lógico pg_dumpall É um utilitário para gravar todos os bancos de dados TimescaleDB de um cluster em um arquivo de script. O arquivo de script contém comandos SQL que podem ser usados ​​para restaurar os bancos de dados.
Físico pg_basebackup Ele é usado para fazer uma cópia binária dos arquivos do cluster de banco de dados, enquanto garante que o sistema seja colocado e retirado do modo de backup automaticamente. Os backups são sempre feitos de todo o cluster de banco de dados de um cluster de banco de dados TimescaleDB em execução. Estes são obtidos sem afetar outros clientes para o banco de dados.
Completo/Incr/Dif pgbackrest É uma solução de backup e restauração simples e confiável que pode ser dimensionada perfeitamente para os maiores bancos de dados e cargas de trabalho, utilizando algoritmos otimizados para requisitos específicos de banco de dados. Um dos recursos mais importantes é o suporte para backups completos, incrementais e diferenciais.
PITR pg_basebackup+WALs Para criar um backup compatível com PITR, o ClusterControl usará pg_basebackup e os arquivos WAL, para poder restaurar o banco de dados a qualquer momento no passado.

Devemos escolher um método, o servidor do qual o backup será feito e onde queremos armazenar o backup. Também podemos enviar nosso backup para a nuvem (AWS, Google ou Azure) ativando o botão correspondente.

Tenha em mente que se você deseja criar um backup compatível com PITR, devemos usar pg_basebackup nesta etapa e devemos fazer o backup do nó mestre.

Em seguida, especificamos o uso de compactação, criptografia e retenção de nosso backup.

Na seção de backup, podemos ver o andamento do backup e informações como método, tamanho, local e muito mais.

Ativando a recuperação pontual


Se quisermos usar o recurso PITR, devemos ter o WAL Archiving habilitado. Para isso, podemos ir para ClusterControl -> Select TimescaleDB Cluster -> Node actions -> Enable WAL Archiving , ou vá para ClusterControl -> Select TimescaleDB Cluster -> Backup -> Settings e ative a opção “Ativar recuperação pontual (arquivamento WAL) ” como veremos na imagem a seguir.

Devemos ter em mente que para habilitar o WAL Archiving, devemos reiniciar nosso banco de dados. O ClusterControl também pode fazer isso por nós.

Além das opções comuns a todos os backups como o “Diretório de backup ” e o “Período de retenção de backup ”, aqui também podemos especificar o período de retenção do WAL. Por padrão é 0, o que significa para sempre.

Para confirmar que temos o WAL Archiving habilitado, podemos selecionar nosso nó mestre em ClusterControl -> Select TimescaleDB Cluster -> Nodes , e devemos ver a mensagem WAL Archiving Enabled, como podemos ver na imagem a seguir.

Restaurando um backup


Quando o backup estiver concluído, podemos restaurá-lo usando o ClusterControl. Para isso, em nossa seção de backup (ClusterControl -> Select TimescaleDB Cluster -> Backup ), podemos selecionar "Restaurar Backup" ou diretamente "Restaurar" no backup que desejamos restaurar.

Temos três opções para restaurar o backup. Podemos restaurar o backup em um nó de banco de dados existente, restaurar e verificar o backup em um host autônomo ou criar um novo cluster a partir do backup.

Se estivermos tentando restaurar um backup compatível com PITR, também precisamos especificar a hora.

Os dados serão restaurados como estavam no momento especificado. Leve em consideração que o fuso horário UTC é usado e que nosso serviço TimescaleDB no mestre será reiniciado.

Podemos monitorar o progresso de nossa restauração na seção Activity em nosso ClusterControl.

Verificação automática de backup


Um backup não é um backup se não for restaurável. Verificar backups é algo que geralmente é negligenciado por muitos. Vamos ver como o ClusterControl pode automatizar a verificação de backups do TimescaleDB e ajudar a evitar surpresas.

No ClusterControl, selecione seu cluster e vá para o "Backup " e, em seguida, selecione “Criar backup ”.

O recurso de backup de verificação automática está disponível para os backups agendados. Então, vamos escolher o “Agendar Backup ” opção.

Ao agendar um backup, além de selecionar as opções comuns como método ou armazenamento, também precisamos especificar agendamento/frequência.

Na próxima etapa, podemos compactar e criptografar nosso backup e especificar o período de retenção. Aqui, também temos o “Verificar backup " característica.

Para usar esse recurso, precisamos de um host dedicado (ou VM) que não faça parte do cluster.

O ClusterControl instalará o software e restaurará o backup neste host. Após a restauração, podemos ver o ícone de verificação na seção Backup do ClusterControl.

Conclusão


Atualmente, os backups são obrigatórios em qualquer ambiente. Eles ajudam você a proteger seus dados. Os backups incrementais podem ajudar a reduzir o tempo e o espaço de armazenamento usados ​​para o processo de backup. Os logs de transações são importantes para a recuperação pontual. O ClusterControl pode ajudar a automatizar o processo de backup de seus bancos de dados TimescaleDB e, em caso de falha, restaurá-lo com apenas alguns cliques. Além disso, você pode minimizar o RPO usando o backup compatível com PITR e melhorar seu plano de recuperação de desastres.