Neste artigo, você terá uma visão geral de como fazer backup das edições Community e Enterprise do Couchbase no Ubuntu e como configurar uma estratégia básica de backup do Couchbase. 

Os scripts e as técnicas descritos aqui não estão prontos para produção; talvez você ainda precise fazer algumas melhorias de acordo com o seu ambiente para torná-lo tolerante a falhas.

Também recomendo que você leia as documentações oficiais mencionadas neste artigo, pois muitos parâmetros opcionais não serão mencionados.

 

Recomendações gerais

 

Máquinas de backup

Embora em clusters com pequeno volume de dados e um pequeno número de nós você possa até mesmo usar um dos nós para fazer backup dos dados fora do horário de pico, é altamente recomendável sempre executar os backups em uma máquina externa executada na mesma rede.

Não subestime a quantidade de memória e CPU necessárias para executar processos de backup íntegros. Compartilhar a mesma máquina pode afetar o desempenho do cluster e também causam falhas nos backups quando não há recursos suficientes disponíveis.

Se você precisar reduzir os custos de execução de um servidor extra para backups, a maioria dos provedores de nuvem permite que você programe quando uma instância deve ser iniciada e, em seguida, no script de backup, você pode desligar a máquina quando tudo estiver concluído. 

No Kubernetes, isso deve ser ainda mais fácil, pois você pode usar CronJobs para fazer praticamente a mesma coisa ou simplesmente definir políticas de backup se estiver usando o Couchbase Autonomous Operator.

 

Política de retenção

Tanto o Incremental quanto o cumulativo Os backups dependem do último backup completo. Portanto, é importante lembrar que você não pode arquivar backups antigos apenas com base na data, mas também deve considerar suas dependências.

Se você tiver um SLA pequeno, considere também deixar os últimos backups em um armazenamento em bloco de fácil acesso. Dependendo do tamanho do seu banco de dados e da velocidade da rede, o download de dados de algum armazenamento de objetos pode lhe custar minutos preciosos.

 

Teste de recuperação

Embora seja inviável testar cada backup, é fundamental ter uma estratégia de teste de backup recorrente para verificar sua integridade. Os backups de teste também o ajudam a se familiarizar com as ferramentas de restauração de dados e também a entender quanto tempo será necessário para recuperar totalmente o banco de dados (duas coisas importantes para saber quando algo dá errado).

O Couchbase já tem internamente vários recursos que evitarão a perda de dados, por exemplo, o número de réplicas para cada vBucket que é configurado quando você cria o bucket pela primeira vez. Supondo que seu banco de dados esteja configurado corretamente, os cenários mais prováveis em que você precisará recuperar o banco de dados são :

  1. Se você perder mais nós do que o número de réplicas. (por exemplo, você configurou 2 réplicas, mas perdeu 3 nós de uma vez)
  2. Uma operação que deixará todo o banco de dados inconsistente (por exemplo, uma nova versão do aplicativo é implementada com um bug que atualiza/exclui um grande número de registros)

Preparação da máquina de backup

Se você planeja executar seus backups em uma máquina dedicada, deve copiar o arquivo caixa de sua instalação do Couchbase para esta máquina, ou simplesmente instalar o Couchbase nessa máquina também. Por exemplo, no Ubuntu, você precisa executar os seguintes comandos:

Em seguida, você precisará executar o seguinte comando de acordo com sua versão do Couchbase:

Comunidade Couchbase:

Couchbase Enterprise

 

Depois disso, todos os arquivos que precisaremos para este artigo deverão estar no diretório /opt/couchbase/bin pasta ("/Applications/Couchbase Server.app/Contents/Resources/couchbase-core/bin no Mac).

Para reduzir o inconveniente de fazer referência ao caixa em cada comando, sugiro que você a adicione à pasta PATH ou criar um link simbólico no diretório /usr/bin diretório:

Comunidade Couchbase:

Couchbase Enterprise:

 

 

Como fazer backup da comunidade do Couchbase

O Couchbase Community vem com duas ferramentas principais para ajudá-lo a fazer backup e restaurar os dados do seu cluster do Couchbase: cbbackup e cbrestore. Ambas as ferramentas estão disponíveis na seção caixa de sua instalação do Couchbase.

O CBBACKUP tem três modos principais:

      • completo - O completo executará um backup completo.
      • diferença - (padrão) O diferença executará um backup incremental diferencial que faz backup apenas das alterações desde o último backup completo ou incremental.
      • accu - O accu executa um backup incremental cumulativo, que faz o backup de todas as alterações desde o último backup completo.

Uma estratégia de backup simples poderia ser semelhante à seguinte:

      • Backup completo aos domingos, à 1h;
      • Backups incrementais diários à 1h;

Vamos começar criando um script que executará nosso backup completo e criará um arquivo chamado full_backup_couchbase.sh com o seguinte conteúdo:

Em seguida, vamos usar o CronTab para agendar nosso backup completo, executando o seguinte comando:

Imprensa "i" para entrar no modo de edição e, em seguida, adicione a seguinte linha:

Observe que seuUsuárioLocal se refere ao usuário local da máquina, o script será executado usando esse contexto. Salve o arquivo quando terminar ("esc" e depois ":wq", caso não esteja acostumado com o vim)

Agora, vamos criar o script para executar os backups incrementais, a única diferença aqui é o modo parâmetro. Crie um arquivo chamado incremental_backup_couchbase.sh e adicione o seguinte conteúdo:

Vamos também adicionar esse script ao arquivo CronTab da guia:

Em seguida, adicione a seguinte linha:

O crontab acima diz que esse script será executado de segunda a sábado à 01h. Não se esqueça de tornar ambos os scripts executáveis:

Execute os dois scripts para ter certeza de que estão funcionando corretamente. Na última sessão deste artigo, você aprenderá a testar também o crontab.

 

 

Como fazer backup do Couchbase Enterprise

O Couchbase Enterprise vem com uma ferramenta mais abrangente chamada cbbackupmgr que oferece alguns recursos extras:

      • Compactação de backup em um repositório de backup para liberar espaço em disco;
      • Lista o conteúdo do arquivo de backup;
      • Mesclar dois ou mais backups;

Como agora temos alguns recursos extras, podemos criar um script mais elaborado que faça o seguinte:

      1. Configure o diretório se ele ainda não estiver configurado (Configuração do cbbackupmgr)
      2. Executar um backup completo/delta
      3. Mesclar backups incrementais mais antigos para recuperar espaço em disco

 Aqui está um script chamado backup_with_periodic_merge.sh que você poderia usar para fazer exatamente o que foi descrito acima:

 

Para executar o script, você pode especificar algo como o seguinte:

Para evitar digitar esse comando todas as vezes, vamos criar um segundo script com todos os parâmetros. Aqui, um script chamado cb_incremental_backup.sh:

Aqui, estou assumindo que ambos os arquivos estão localizados na pasta /home/ubuntu/scripts. No final do script, também estou usando Postfix para enviar um e-mail a um grupo de usuários após a conclusão de todo o processo. Definitivamente, há maneiras melhores de monitorar se os backups foram executados com êxito, mas se você ainda não tiver uma estratégia melhor, enviar um e-mail é pelo menos um tipo básico de monitoramento.

Agendar a execução desse script usando o crontab será muito semelhante ao que fizemos na edição comunitária, basta executar o seguinte comando:

Em seguida, adicione a seguinte linha:

Observe que seuUsuárioLocal se refere ao usuário local da máquina, o script será executado usando esse contexto. Salve o arquivo quando terminar ("esc" e depois ":wq", caso não esteja acostumado com o vim)

O cb_incremental_backup.sh O script executará backups incrementais todos os dias à 01h. Recomendo que você também execute backups completos de tempos em tempos para evitar ter um único backup completo com vários incrementais.

Testando seu CronTab

Você pode testar rapidamente seus CronTabs usando cronômetroPara instalá-lo, basta executar os seguintes comandos

Em seguida, execute o comando abaixo para listar todos os seus trabalhos agendados:

Navegue pela lista usando as teclas de seta, escolha a que você deseja executar e pressione Enter:

 

Se tudo estiver configurado corretamente, seu script deverá ser executado com êxito.

 

 

 

Autor

Postado por Denis Rosa, defensor dos desenvolvedores, Couchbase

Denis Rosa é um Developer Advocate do Couchbase e mora em Munique, na Alemanha. Ele tem uma sólida experiência como engenheiro de software e fala fluentemente Java, Python, Scala e Javascript. Denis gosta de escrever sobre pesquisa, Big Data, IA, microsserviços e tudo o mais que possa ajudar os desenvolvedores a criar um aplicativo bonito, mais rápido, estável e escalável.

Deixar uma resposta