Fazer backup copiando a pasta / mysql / data está ok, desde que o mysql de origem e de destino sejam da mesma versão?

4

Se houver apenas bancos de dados MyISAM, o backup e a restauração serão possíveis simplesmente copiando a pasta de dados, independentemente das versões?

Mas, se houver bancos de dados INNODB, e tivermos certeza de que as versões de origem e de destino serão idênticas, esse método de copiar e colar é possível?

Seria melhor evitar digitar qualquer comando para fazer o backup, porque a pessoa que vai fazer isso nunca usou a linha de comando antes.

    
por bobo 04.11.2009 / 03:47

4 respostas

12

Se tivéssemos que evitar sempre a linha de comando, nunca teríamos chegado à lua. Ou pegue outro astronauta ou treine mais.

Se você está falando sobre um banco de dados ativo em produção, os valores podem estar em fluxo, então não seria confiável fazer backups de um banco de dados, em qualquer tipo de banco de dados, simplesmente copiando um monte de arquivos.

Você pode obter um backup seguro de todo o banco de dados mysql, incluindo tabelas do sistema, desta maneira:

mysqldump --all-databases > mysqlbackup.sql

O backup está no arquivo mysqlbackup.sql - isso pode ser feito em fita, DVD, etc.

restore é o oposto disso, feito com o redirecionamento do arquivo de backup para o cliente mysql.

mysql < mysqlbackup.sql

Para qualquer um desses comandos, você pode precisar de -u para o nome de usuário com direitos de administrador e -p para especificar a senha.

    
por 04.11.2009 / 04:35
2

Se você absolutamente deve usar copiar e colar os serviços MySQL em ambas as extremidades deve ser interrompido, você deve ter as mesmas configurações e você deve copiar todos os arquivos de log, bem como as pastas de dados.

No entanto, como já foi apontado, esse é um mau caminho a percorrer. Não é grande coisa criar um script e dizer à pessoa que precisa executar o comando a ser digitado. Supondo que a pessoa seja inteligente o suficiente para poder fazer logon na máquina, eu esperaria que ele não tivesse problemas em executar um comando.

Outra opção é criar uma réplica master-slave e mantê-la atualizada sem que o usuário precise fazer nada. É claro que você ainda precisará monitorar o sistema para garantir que está funcionando corretamente, mas você deve fazer isso de qualquer maneira.

    
por 04.11.2009 / 05:13
0

Eu não recomendaria copiar e colar arquivos. Se a pessoa não é técnica, como você vai ter certeza de que o daemon mysql está devidamente parado?

Se isso é para usuários não-técnicos, você deveria reservar um script que chame mysqldump para criar um backup para eles.

    
por 04.11.2009 / 04:38
0

Você realmente nunca deve considerar um escravo de replicação como uma boa solução de backup. Por exemplo, e se algo acontecer quando um banco de dados for descartado ou se outro SQL prejudicial for executado no mestre? Essas instruções apenas serão replicadas para o escravo e executarão as mesmas ações, impossibilitando a reversão para um ponto antes do evento acontecer.

Siga os conselhos do labradort e pelo menos use o mysqldump.

    
por 07.11.2009 / 00:22