sql >> Base de Datos >  >> RDS >> Mysql

Copia de seguridad de MySQL:¿Puedo copiar archivos de tabla MyISAM individuales a otro servidor con una versión de MySQL diferente y un sistema operativo diferente?

Solo copie tablas MyISAM a nivel de archivo entre versiones de servidores con el mismo:
- CPU 'endian' ( SPARC !=x86 )
- Las versiones de MySQL se pueden actualizar sin conversión (5.0.48 copiar a 5.0 .52 es malo debido a cambios en la estructura del índice, pero la copia de 5.0.52 a 5.1.45 es válida).

Tenga cuidado con las condiciones de carrera... Es posible que esté accediendo a los archivos mediante FTP o alguna otra herramienta, mientras que la base de datos lee la tabla. Hay 'contadores' de tablas actualizados dentro del .MYI incluso para las lecturas de tablas más benignas.

Descubrí que lo siguiente garantizará la integridad de las tablas MyISAM para cualquier manipulación a nivel de archivo:

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;

Si NO bloquea y escribe su tabla, mysql puede acceder a ella (lectura o escritura) mientras realiza su copia/manipulación a nivel de archivo.

Este también es el mismo mecanismo utilizado para permitir 'myisampack', 'myisamchk' para tablas en una base de datos HOT que incluso tiene el bloqueo externo deshabilitado, sin preocupaciones de corrupción.

-- J. Jorgenson --