Por Dmitri Joukovski e Pavel Pragin

O banco de dados MySQL se tornou o banco de dados de código aberto mais popular do mundo devido ao seu desempenho rápido consistente, alta confiabilidade e facilidade de uso. Você pode estar usando o banco de dados MySQL para seus fóruns online e wiki localizados no provedor de hospedagem gerenciada, ou pode estar usando em um escritório remoto para rastrear bugs com o Bugzilla, ou pode apenas estar pensando em desenvolver algum novo aplicativo Web 2.0 que use MySQL . De qualquer forma, se você valorizar as informações armazenadas em seu banco de dados MySQL, precisará garantir backups bem-sucedidos, seguros e consistentes do MySQL com impacto mínimo no aplicativo de banco de dados. Certifique-se de que sua solução de backup forneça o uso mais eficiente dos recursos de rede, servidor e armazenamento.

Se você está procurando uma solução que simplifique sua vida, fornecendo um backup e recuperação fácil de usar, porém flexível e robusto para MySQL, o Zmanda Recovery Manager (ZRM) pode ser a escolha certa para você. Detalhes sobre A funcionalidade ZRM está disponível aqui.

Para qualquer backup de um banco de dados, as principais considerações são a consistência do backup e o impacto nos usuários e aplicativos. Um backup do MySQL remoto, no entanto, tem desafios extras relacionados a:

  • uso de rede
  • segurança, e
  • flexibilidade de capacidade de recuperação de dados MySQL para um host diferente.

O último ponto pode ser importante quando você não tem controle total do seu ambiente MySQL e deseja ter a opção de recuperar seus dados para um provedor de hospedagem gerenciado diferente com uma versão diferente do servidor MySQL ou um sistema operacional diferente.

Os backups incrementais reduzem significativamente a janela de backup e o uso da rede porque apenas as alterações desde o último backup completo ou incremental são movidas durante a transmissão. O ZRM facilita a recuperação de seus dados de backups incrementais, mesmo que você precise usar várias imagens de backup incrementais para obter seus dados de volta a um determinado momento. Os backups incrementais requerem que os logs binários do MySQL sejam habilitados, mas de acordo com a documentação do MySQL, a habilitação de logs binários resultará em impacto de desempenho de menos de 1%.

Os backups lógicos fornecem mais flexibilidade para recuperação porque o arquivo de backup é um arquivo de texto que contém todas as instruções do MySQL para recriar o esquema e o conteúdo do banco de dados. O backup lógico funciona para todos os mecanismos de armazenamento, exceto o mecanismo NDB usado para clustering MySQL. A maior vantagem do backup lógico é a flexibilidade para a recuperação do banco de dados. Você pode restaurar o backup lógico do MySQL para outra arquitetura e até mesmo para outro banco de dados. A capacidade de transporte de imagens lógicas de backup do ZRM torna o ZRM uma ferramenta conveniente para migração. Por exemplo, você pode mover seus dados MySQL:

  • Do MySQL no Solaris ao MySQL no Linux
  • De um mecanismo de armazenamento para outro
  • De um servidor de 32 bits para um servidor de 64 bits
  • De um provedor de hospedagem gerenciada para seu data center ou outro provedor com configuração de MySQL diferente

Claro, há um preço a pagar por essa recuperação flexível. A restauração de dados dos backups lógicos pode levar muito tempo, pois você precisa ler e reproduzir todas as instruções do MySQL. Outra desvantagem é que pode ser difícil prever o tamanho do seu backup lógico. Dependendo do tipo de dados e do esquema do banco de dados, o tamanho do backup lógico pode ser maior que o próprio banco de dados. Uma solução é que, como o backup lógico é basicamente um arquivo de texto, geralmente você pode obter uma compactação decente.

O backup bruto fornece uma cópia consistente de um banco de dados, sendo seu backup um arquivo binário. As vantagens dos backups brutos sobre os lógicos são:

  • Backups e principalmente recuperações são muito mais rápidos. Por exemplo, não é incomum ver que, para o mesmo banco de dados com tamanho de 4-5 GB, o backup bruto é 5 vezes mais rápido que o backup lógico e a recuperação da imagem de backup bruta é 20 vezes mais rápida do que a recuperação do backup lógico imagem.
  • Você sempre saberá o tamanho exato do seu backup, pois é apenas uma cópia de um banco de dados.
  • Ele fornece melhor escalabilidade, o que pode ser importante se seu banco de dados MySQL for muito grande, por exemplo, 10-20 GB ou mais.

Backups brutos podem ser recuperados SOMENTE para a mesma versão do servidor MySQL no mesmo sistema operacional que os dados originais. Isso significa que suas chances de recuperar imagens de backup brutas do MySQL para outro provedor de hospedagem gerenciada não são muito altas e você deve levar isso em consideração ao escolher o backup bruto versus lógico.

Os backups brutos e lógicos fornecem backup dinâmico, o que significa que você não precisa desligar o servidor MySQL para fazer backup, mas todas as tabelas são bloqueadas durante o backup e os usuários não podem inserir seus dados. É por isso que você deve considerar o uso do plug-in de agendamento ZRM que permite atrasar backups com base nos limites que você definir. Por exemplo, você pode adiar o backup por uma hora se mais de 50 usuários acessarem o banco de dados.

Uma das considerações importantes para backup remoto de MySQL é a decisão sobre que tipo de conexão estabelecer entre o ZRM e o servidor MySQL remoto. O ZRM fornece um plug-in para conexão baseada em soquete e outro plug-in para conexão baseada em SSH. A arquitetura flexível do ZRM permite que os usuários escrevam seus próprios plug-ins.

Como o nome sugere, o plug-in de cópia de soquete estabelece um soquete que fornece comunicação entre o ZRM e o MySQL em uma rede baseada em IP. O plug-in de cópia de soquete requer que o serviço xinetd esteja rodando no servidor MySQL e a porta padrão 25300 esteja aberta. Se necessário, um administrador de backup pode alterar a porta. O plug-in de cópia de soquete não é seguro e deve ser usado apenas quando a segurança não é importante ou quando a segurança é estabelecida por outros meios, por exemplo, quando você tem uma conexão VPN entre o ZRM e seu servidor MySQL remoto.

O plug-in de cópia SSH fornece um canal seguro entre o ZRM e o servidor MySQL remoto. Ele usa criptografia de chave pública para autenticar o servidor MySQL remoto e o usuário de backup que executa o ZRM. O plug-in SSH requer que a porta 22 TCP padrão esteja aberta e o daemon SSH em execução. O plug-in de cópia SSH é mais adequado quando garantir a segurança dos dados de backup é importante. Como a conexão SSH requer ciclos extras de CPU para criptografia, pode haver um impacto no desempenho do backup em comparação ao backup com conexão de soquete.

A tabela a seguir resume as considerações ao escolher o plug-in de cópia de soquete vs. SSH para backup remoto do MySQL:

Conexão remota
plugar
Porta usada Segurança Desempenho relativo Comentários de instalação
Cópia SSH 22 (fixo) Fornece autenticação e criptografia fortes para mover dados de backup durante a transmissão Baixo desempenho e depende da memória do servidor MySQL, recursos da CPU e largura de banda disponível. Freqüentemente, você pode ter uma conexão SSH com um servidor MySQL remoto já estabelecido por outras razões além de backup e recuperação. Caso contrário, você deve estabelecer uma conexão SSH entre o servidor ZRM e o MySQL.
Cópia de soquete 25300 (pode ser alterado) Os dados de backup durante a transmissão não são seguros Melhor desempenho Software adicional deve ser instalado no servidor MySQL. Por exemplo, para a versão Enterprise do ZRM 1.1, use MySQL-zrm-enterprise-socket-server-1.1-1.noarch.rpm. Para a versão da comunidade, consulte a página de downloads para o pacote exato.

Para obter mais detalhes técnicos, registre-se gratuitamente na rede Zmanda e baixe a versão completa deste white paper. Você aprenderá como usar o ZRM para vários cenários comuns. Por exemplo, forneceremos detalhes técnicos sobre como realizar o backup com os dados protegidos durante a transmissão e em repouso usando o plug-in de cópia SSH para este caso de uso:

ZRM pela Internet

Além disso, forneceremos detalhes técnicos sobre backups lógicos e brutos mais eficientes usando o plug-in de cópia de soquete.

Com toda a sua rica funcionalidade, o ZRM para MySQL é apenas uma ferramenta para implementar uma estratégia de backup e recuperação ideal para suas necessidades específicas de proteção de dados. O ZRM é robusto e fácil de usar, mas dependendo de sua própria implementação do servidor MySQL remoto e seus requisitos específicos para backup e recuperação, você deve considerar todas as compensações associadas a cada opção operacional fornecida pelo ZRM para MySQL.

Referências:
ZRM para MySQL
ZRM para MySQL Wiki
Fóruns Zmanda