MyISAM
Se você tem um banco de dados all-MyISAM, isso pode funcionar porque todas as tabelas MyISAM terão 0 contadores de arquivos em seus cabeçalhos.
InnoDB
Se você tiver alguma tabela InnoDB, FLUSH TABLES WITH READ LOCK;
pode não fornecer isolamento adequado para a integridade dos dados. Eu escrevi sobre isso no DBA StackExchange em novembro de 2012 (Como executar um backup frio com o Linux / tar sem desligar o MySQL slave ?)
Dada a Arquitetura InnoDB (Imagem feita por Percona CTO Vadim Tkechenko)
existemquatroobjetosqueaindaestãoemmovimentoapósaemissãodeFLUSHTABLESWITHREADLOCK;
:
- Bufferdegravaçãodupla
- Inserirbuffer
- RedoLogs
- AnularRegistos
SuponhaquevocêexecuteFLUSHTABLESWITHREADLOCK;
eRobocopyeleve5minutosparacopiar,oquesignificaqueasalteraçõesfísicasqueestãosendofeitasduranteos5minutosnãoestarãopresentesnobackup.Piorainda,asalteraçõesnoarquivonãoserãodeumúnicopontonotempo.Issosignificaquepodehaveralgunsarquivos.ibd
quepodemounãotersidoalterados,masatransaçãoquemantémsuasalteraçõesnãofoitotalmenteconfirmada.
Vocêteriaquecopiarosdadosparaoutramáquina,iniciaroMySQLeverificarsearecuperaçãodefalhas(queocorreduranteainicializaçãodomysqld,lereprocessaressesquatroobjetos)tornaosdadosestáveiseutilizáveis.
Émelhorvocêusarmysqldump
comaopção--single-transaction
.
Paraalgumasideias,vejaminhaspostagensantigasnoDBAStackExchange
Apr17,2011
:Como pode Otimizar um mysqldump de um grande banco de dados? -
Mar 14, 2014
: mysqldump com nome de exportação gerado automaticamente