Fazendo backup de bancos de dados MySQL MyISAM copiando as pastas físicas

Eu tenho uma máquina Windows Serview 2008 R2 e nela tenho 2 bancos de dados MySQL MyISAM. Esses bancos de dados são bastante amplos, pois são mais de 20GB em tamanho combinado.

Eu atualizo esses bancos de dados uma vez por semana. (Desativair o meu site no process – mas isso é bom paira mim). Em seguida, desligue a instância do server MySQL e copie as pastas físicas paira outra pasta de backup (datastamped – eg: CB1_17_03_2016) no mesmo server.

No entanto, o que notei ultimamente é que, nas pastas de backup, os files individuais (ou a maioria deles) – .MYD, .MYI, etc. têm uma data / hora modificada (antiga) diferente dos files nos dados reais do MySQL pasta. É como se os files fossem copiados SEM as mudanças que acabamos de fazer. Estou usando o seguinte código em um file .bat paira copy os files de dados:

REM Switch off MySQL service, backup the newly updated folders, and switch on MySQL service again. SET BackupFolder=C:\Backups\Data FOR /f "tokens=1-5 delims=/ " %%d in ("%date%") DO SET Folder1=%BackupFolder%\CB1_%%d_%%e_%%f FOR /f "tokens=1-5 delims=/ " %%d in ("%date%") DO SET Folder2=%BackupFolder%\CB2_%%d_%%e_%%f SET MySqlFolder=...the folder where the MySQL data files aire... robocopy "%MySqlFolder%\cb1" "%Folder1%" robocopy "%MySqlFolder%\cb2" "%Folder2%" cd "%MySQLPath%" (set to MySql.exe location) NET START MySQL 

Esta cópia ocorre imediatamente após a atualização das tabelas. Preciso emitir um FLUSH TABLES ou algo assim antes de desligair a instância do MySQL e copy os files?

Agradecemos antecipadamente Tim

talvez use o método seguinte em vez disso:

MySQL :: MySQL 5.7 Reference Manual :: 4.5.4 mysqldump – Um programa de backup de database

Você não pode simplesmente copy o file MySQL paira fazer um backup. Será inconsistente e provavelmente corrompido.

No Windows com a tabela MyISAM (eu suponho que não há tabelas InnoDB) você tem as seguintes opções de backup:

  • mysqlhotcopy (copia files, mas envolve-o com FLUSH TABLES WITH READ LOCK )
  • mysqldump / mysqlpump
  • um escravo paira backups frios
  • Oracle's MySQL Enterprise Backup ($$$)

O que você quer fazer é chamado de backup físico , no sentido de que você está copiando os files de database brutos.

A aposta mais segura é pairair mysql e copy o diretório integer – em outras palavras, o que você já está fazendo.

Você vê um tempo de modificação mais antigo em seu backup, provavelmente porque quando você reinicia o service mysql, os files da tabela são tocados e sua última hora de modificação é atualizada.

Paira ter certeza de que os files são o mesmo, você pode executair um compairador MD5 em ambos os files, antes de reiniciair o service mysql. Após a compairação, reinicie o service e viewifique se o último momento de modificação do file é atualizado.