Quote
Aunque el motor de base de datos está arrancado tengo la seguridad de que no se está accediendo a la base de datos que estoy copiando.
Pero tienes muchos buffers internos, como la key_cache o el buffer pool que hacen la base de datos inconsistente con disco.
Para asegurar la consistencia en MyISAM, tienes que ejecutar
FLUSH TABLES WITH READ LOCK;
(bloqueando todas las tablas) y entonces puedes copiar sus archivos sin problema.
InnoDB siempre es consistente con disco, pero no puedes asegurar que haya escrituras pendientes en hilos de background (auque no haya DMLs). Hay dos opciones, hacer un snapshot (de manera que se copien todos los archivos absolutamente a la vez) y luego realizar un crash recovery controlado -como simula Percona XtraBackup- o utilizas los transportable tablespaces que te permite MySQL 5.6 y Percona Server (con lo cual se bloquea cada tabla una a una).
Quote
Lo del esclavo no me sirve porque lo que yo quiero entre otras cosas es que si alguien por ejemplo borra algo por error poder restaurar la base de datos desde la copia de seguridad, pero con la replicación se habría propagado el borrado accidental a la esclava.
No me has entendido, montas un esclavo, y luego usas el esclavo para hacer las copias de seguridad. Puedes tirarlo y copiar el directorio de datos sin afectar a producción (maestro). Por cierto que también puedes montar un esclavo con un cierto retraso (un día, una semana) ya que la replicación es asíncrona, usando MASTER_DELAY de MySQL 5.6 o
pt-slave-delay en cualquier versión.
Quote
Yo lo que quiero es tener un backup diario. ¿Cómo lo hacen en las empresas de hosting sin parar el servidio? ¿O es que sí que lo paran?
Las empresas usan (o combinan):
mysqldump o
mydumper si la base de datos es pequeña o alta disponibilidad (cluster de replicación u otro) o snapshoting combinado con FTWRL o InnoDB (
LVM, máquinas virtuales) o herramientas especializadas (
MySQL Enterprise Backup o
Percona XtraBackup). En general, las empresas suelen usar InnoDB, que permite realizar copias en caliente sin problemas (al contrario que MyISAM).
No puedes simplemente copiar el directorio de datos en caliente.
--
Jaime Crespo
http://dbahire.com