Como faço para restaurar um banco de dados MySQL do Backup do Time Machine?

4

Eu desenvolvo localmente em um Mac, e meu computador morreu completamente ontem. O disco rígido desapareceu, aparentemente não recuperável.

Eu tenho um backup atual no Time Machine.

Então, minha pergunta é:

Como exatamente restauro esse backup? Existe uma localização física dos bancos de dados que posso restaurar? Onde seria isso?

Eu não uso muito o MySQL na linha de comando, mas estou familiarizado com o console e tal.

Pelo que entendi, os backups completos do Time Machine destinam-se apenas à máquina que morreu, mas eu preciso dos backups do MySQL antes de ter tempo para cuidar do meu outro computador, então estou procurando uma maneira de obter os bancos de dados restaurados no meu laptop quando os arquivos originais do MySQL estiverem em um disco rígido externo conectado ao meu laptop.

Obrigado!

    
por CWSpear 03.04.2013 / 07:19

2 respostas

3

Eu só tinha que lidar com isso.

Encontrando o backup

No meu caso, o mysql vive em /usr/local/mysql/ (onde a última parte é realmente um link simbólico para a versão atual do mysql). Ele faz corretamente o backup dos arquivos, e toda a estrutura existe no backup.

Mas, por algum motivo, mesmo que você navegue até o caminho local correto no localizador, se executar o "Time Machine", ele mostrará que não existe backup anterior. O que felizmente não é verdade, a menos que você o exclua.

Assim, para recuperar seu backup, você precisa navegar até o respectivo caminho no volume de backup, que deve ser algo como /Volumes/<yourbackupvolume>/Backups.backupdb/<host>/<revision>/Macintosh HD/usr/local/mysql/data/ . É mais fácil no terminal. Quando você cd 'para o caminho correto, você pode usar open . para abrir uma janela do Finder nesse caminho e usar arrastar & solta. No entanto, o Finder provavelmente pedirá para você apropriar-se da pasta primeiro, então você terá que corrigir as permissões posteriormente.

Encontrando um backup estável

Se você tem o mysql rodando constantemente, você ainda pode ter um problema. Tanto quanto eu sei, o InnoDB é bastante resiliente, mas é possível que a estrutura do arquivo esteja corrompida. O MySQL vem com mysqlcheck que supostamente pode reparar essas tabelas.

Se você não sabe, é mais fácil encontrar um backup em que a data / hora de modificação de todos arquivos em data/ (razoavelmente, digamos, alguns minutos) sejam inferiores à data / hora do backup. Neste caso, você pode estar razoavelmente seguro de ter um backup consistente e o mysql deve começar sem problemas.

Permissões

Se por algum motivo suas permissões não funcionarem após a recuperação, atualmente (OS X 10.10 / Yosemite) as permissões são definidas por

sudo chown -R _mysql:admin /usr/local/mysql/data

funcionou muito bem para mim (o MySQL é executado como usuário _mysql ). Observe que mysqld falhará quase que silenciosamente e tentará apenas criar um arquivo de log de erros em /usr/local/mysql/data/ , que também pode falhar devido a permissões.

    
por 19.01.2015 / 17:04
0

O Time Machine não é um backup SQL, o que ele fez foi feito em backup dos arquivos reais que compõem o seu banco de dados SQL.

Eu não sei como os Macs lidam com o backup de arquivos abertos (suponho que você execute o MySQL como algum tipo de serviço ou daemon)

O que você provavelmente precisará fazer é usar a GUI da máquina do tempo para trazer de volta os arquivos do banco de dados (basta procurar a versão desejada e clicar em ir acredite; o Time Machine garantirá que ele traga de volta as alterações originais + incrementais )

Em seguida, você provavelmente precisará executar algumas ferramentas de consistência para garantir que seu banco de dados seja consistente. O MySQL deve ter alguns desses recursos integrados, mas não sou especialista. O MySQL possui logs de transação? em caso afirmativo, use o Time Machine para puxá-los de volta ao mesmo ponto exato no tempo.

    
por 03.04.2013 / 09:14