Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando Consultores de Backup de Banco de Dados para Automatizar Tarefas de Manutenção

Um desastre geralmente causa uma interrupção, o que significa tempo de inatividade do sistema e possível perda de dados. Uma vez que detectamos o apagão, acionamos nosso plano de DR para nos recuperarmos dele. Mas seria uma surpresa, se não houver backup, ou após longas horas de recuperação, você perceber que não é o que você precisa.

Embora as interrupções possam ser caras, geralmente há um impacto financeiro que pode ser prejudicial aos negócios e a perda de dados pode ser um motivo para fechar a empresa.

Para minimizar a perda de dados, precisamos ter várias cópias de dados em vários lugares. Podemos projetar nossa infraestrutura em diferentes camadas e abstrair cada camada da camada abaixo dela. Por exemplo, criamos uma camada para clusters de instâncias de banco de dados para proteção contra falhas de hardware. Replicamos bancos de dados em datacenters para que possamos nos defender contra uma falha no datacenter. Cada camada adicional adiciona complexidade, o que pode se tornar um pesadelo para gerenciar. Mas ainda assim, em essência, um backup terá o lugar central na recuperação de desastres.

É por isso que é crucial ter certeza de que é algo em que podemos confiar. Mas como conseguir isso? Bem, uma das opções é verificar se os backups foram executados com base nas últimas linhas do script de backup.

Um exemplo simples:

#!/bin/sh

mysqldump -h 192.168.1.1 -u user -ppassword dbname > filename.sql



if [ "$?" -eq 0 ]; then

    echo "Success."

else

    echo "Error."

fi

Mas e se o script de backup não for iniciado? O Google oferece muitos resultados de pesquisa para "Linux cron, não está em execução".

Infelizmente, bancos de dados de código aberto geralmente não oferecem repositório de backup.

Outro teste de backup. Você já deve ter ouvido falar sobre o gato de Schrödinger. Uma teoria conhecida do Backup de Schrödinger é . "A condição de qualquer backup é desconhecida até que uma restauração seja tentada." Parece uma abordagem simples, mas tal tentativa significaria que você teria que configurar um ambiente de teste, copiar arquivos executar restauração ... após cada backup.

Neste artigo, veremos como você pode usar o ClusterControl para garantir que seu backup seja executado para obter bancos de dados de nível empresarial com bancos de dados de código aberto.

Relatórios de backup

ClusterControl foi destinado a relatórios operacionais. O Operational Reporting fornece suporte ao monitoramento e controle diário das atividades corporativas. O relatório de backup é um dos muitos. Você pode encontrar relatórios como:

  • Relatório diário do sistema
  • Relatório de atualização de pacote
  • Relatório de alteração de esquema
  • Disponibilidade 
  • Backup

Mas por que você precisaria disso?

Você já pode ter uma excelente ferramenta de monitoramento com todas as métricas/gráficos possíveis e provavelmente também configurou alertas com base em métricas e limites (alguns até terão consultores automatizados fornecendo recomendações ou corrigindo coisas automaticamente). sistema é importante; no entanto, você precisa ser capaz de processar muitas informações.

Como isso funciona? O ClusterControl coleta informações sobre o processo de backup, os sistemas, plataformas e dispositivos na infraestrutura de backup quando o trabalho de backup é acionado. Todas essas informações são agregadas e armazenadas em um CMON (banco de dados interno), portanto, não há necessidade de consultar bancos de dados específicos adicionalmente. Além disso, quando descobrir que você tem um cluster em execução, mas não houve backup, também será relatado.

Nos detalhes do relatório, você pode acompanhar um  ID de backup com dados detalhados sobre o local, tamanho, hora e método de backup. Os modelos funcionam com dados para diferentes tipos de banco de dados, portanto, ao gerenciar seu ambiente misto, você terá a mesma sensação e aparência. Ajuda a gerenciar melhor os diferentes backups de banco de dados.

Relatórios CLI

Para quem prefere a interface de linha de comando, uma boa opção para rastrear backups ClusterControl Command Line Interface (CLI).

A CLI permite executar a maioria das funções disponíveis no ClusterControl usando comandos simples. Execução de backup e relatórios de backup são um deles.

Usado em conjunto com a poderosa GUI, ele oferece aos usuários do ClusterControl formas alternativas de gerenciar seus ambientes de banco de dados de código aberto usando qualquer mecanismo de sua preferência.

$ s9s backup --list --cluster-id=1 --long --human-readable

ID CID STATE     OWNER HOSTNAME CREATED  SIZE FILENAME

 1   1 COMPLETED dba   10.0.0.5 07:21:39 252K mysqldump_2017-05-09_072135_mysqldb.sql.gz

 1   1 COMPLETED dba   10.0.0.5 07:21:43 1014 mysqldump_2017-05-09_072135_schema.sql.gz

 1   1 COMPLETED dba   10.0.0.5 07:22:03 109M mysqldump_2017-05-09_072135_data.sql.gz

 1   1 COMPLETED dba   10.0.0.5 07:22:07 679 mysqldump_2017-05-09_072135_triggerseventsroutines.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:20 252K mysqldump_2017-05-09_073016_mysqldb.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:24 1014 mysqldump_2017-05-09_073016_schema.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:44 109M mysqldump_2017-05-09_073016_data.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:49 679 mysqldump_2017-05-09_073016_triggerseventsroutines.sql.gz

A partir da versão 1.4.1, o script do instalador instalará automaticamente este pacote no nó ClusterControl. CLI faz parte do pacote s9s-tools. Você também pode instalá-lo separadamente em uma máquina diferente para gerenciar o cluster de banco de dados remotamente. Semelhante ao ClusterControl, ele usa comunicação SSH segura.

Verificação automática de backup

Um backup não é um backup se não pudermos recuperar os dados. A verificação de backups é algo que geralmente é negligenciado por muitas empresas. Vamos ver como o ClusterControl pode automatizar a verificação de backups e ajudar a evitar surpresas.

No ClusterControl, selecione seu cluster e vá para a seção "Backup" e, em seguida, selecione “Create Backup”.

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

Ao agendar um backup, além de selecionar as opções comuns como método ou armazenamento, também precisamos especificar agendamento/frequência. Neste exemplo, vamos configurar a verificação de backup do MySQL. No entanto, o mesmo pode ser alcançado para bancos de dados PostgreSQL e Timescale.

Quando a verificação de backup estiver marcada, outra guia aparecerá.

Aqui podemos definir todos os passos necessários para preparar o ambiente. Quando o IP é fornecido, podemos agendar esse backup. Sempre que o backup terminar, ele será copiado para um ambiente de verificação de backup temporário (opção "restaurar backup em"). Após a atualização bem-sucedida, você verá o status da verificação na guia do repositório de backup.

Falha nas execuções de backup e serviços de integração

Outra opção interessante para obter mais pistas sobre a execução de backup é usar os serviços de integração do ClusterControl. Você pode controlar o status de execução do backup com serviços de terceiros.

A integração de ferramentas de terceiros permite automatizar alertas com outros sistemas populares. Atualmente, o ClusterControl é compatível com ServiceNow, PagerDuty, VictorOps, OpsGenie, Slack, Telegram e Webhooks.

Abaixo podemos ver um exemplo de integração de canal do Slack. Sempre que ocorrer um evento de backup, ele aparecerá no canal de folga.

Conclusão


Os backups são obrigatórios em qualquer ambiente. Eles ajudam você a proteger seus dados e estão no centro de qualquer cenário de recuperação de desastres. O ClusterControl pode ajudar a automatizar o processo de backup de seus bancos de dados e, em caso de falha, restaurá-lo com apenas alguns cliques. Além disso, você pode ter certeza de que eles são executados com sucesso e confiáveis, portanto, em caso de desastre, você não perderá seus dados.