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.