Tenho lido muitos tópicos sobre diferentes opções de backup para o MySQL e esperava mais informações para poder escolher uma.
Nossa situação atual é de aproximadamente 100 GB de dados InnoDB e MySAM em 10 bancos de dados (o maior único ~ 60 GB) sem replicação. Backups noturnos do mysqldump por AutoMySQLBackup bloqueiam o banco de dados por 20 minutos.
Removemos o Percona XtraBackup devido a dificuldade em restaurar os bancos de dados para testar se o backup era realmente viável e se poderíamos nos recuperar de um desastre com eles. Além disso, frequentemente transferimos vários bancos de dados para um local diferente para testes de desenvolvimento. Não parecia fácil (ou mesmo possível?) Restaurar um único banco de dados do dump do XtraBackup em nosso servidor Red Hat para uma máquina Mac OS X para desenvolvimento local. Claro que é muito fácil fazer isso com um mysqldump.
Nossa nova configuração terá um mestre MySQL 5.5 replicando para um escravo MySQL 5.5 em um servidor diferente no mesmo rack. Queremos ter backups diários, sem tempo de inatividade devido a bloqueios, etc., e poder mover os backups facilmente e restaurar em diferentes servidores/plataformas. Talvez esta solução sugerida pelo prolífico Rolando seja a melhor?
SUGESTÃO #2: Use a replicação do MySQL no servidor diferente
Em consideração à sua primeira necessidade (baixo custo), se você tiver acesso a um servidor commodity com espaço em disco adequado, configure a replicação do MySQL para esse servidor externo. Dessa forma, você pode executar backups no Slave da seguinte maneira
- PARAR DE ESCRAVO;
- XtraBackup
- INICIAR ESCRAVO;
Você pode fazer isso com impacto zero (sem carga do servidor, sem E/S de disco) no mestre
Naturalmente, substituiríamos o XtraBackup por um mysqldump. Existem ideias melhores para a nossa situação?
Tirar um backup de um escravo é exatamente como eu faço, e funciona muito bem. Não consigo imaginar uma maneira melhor de fazer um backup sem causar tempo de inatividade do mestre e de seu aplicativo.
Estou intrigado com sua declaração sobre não ser capaz de restaurar um backup em uma máquina mac osx (provavelmente poderia ser uma pergunta diferente). Uma alternativa é configurar uma máquina virtual em suas máquinas mac locais que executam o mesmo sistema operacional que seus servidores de produção executam. Uma ferramenta que facilita o gerenciamento dessas máquinas é o Vagrant .
A imitação do ambiente de produção tem o benefício adicional de permitir que você teste qualquer procedimento de restauração com um alto grau de certeza de que funcionará nos servidores de produção, caso seja necessário.