Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Backup do MySQL:Posso copiar arquivos de tabela MyISAM individuais para outro servidor com versão diferente do MySQL e sistema operacional diferente?


Somente cópias em nível de arquivo de tabelas MyISAM entre versões de servidores com o mesmo:
- CPU 'endian' ( SPARC !=x86 )
- Versões do MySQL podem ser atualizadas sem conversão (5.0.48 copia para 5.0 .52 é ruim devido a mudanças na estrutura do índice, mas a cópia 5.0.52 para 5.1.45 é válida).

Cuidado com as condições de corrida... Você pode estar acessando os arquivos usando FTP ou alguma outra ferramenta, enquanto o banco de dados está lendo a tabela. Existem 'contadores' de tabela atualizados dentro do .MYI até mesmo para as leituras de tabela mais benignas.

Descobri que o seguinte garantirá a integridade das tabelas MyISAM para qualquer manipulação no nível do arquivo:
LOCK TABLE x WRITE;
FLUSH TABLE x; -- closes all file handles into table by mysql.
   < perform file-level manipulations >
FLUSH TABLE x; -- A 'stat' of the table occurs and info-schema is updated appropriately.
UNLOCK TABLES;

Se você NÃO fizer lock-write em sua tabela, o mysql pode acessá-la (leitura ou escrita) enquanto você está fazendo sua cópia/manipulação em nível de arquivo.

Este também é o mesmo mecanismo usado para permitir 'myisampack', 'myisamchk' para tabelas em um banco de dados HOT que ainda possui bloqueio externo desabilitado, sem preocupações de corrupção.

-- J Jorgenson --