Mejores prácticas para realizar copias de seguridad del servidor MySQL:
Replicación MySQL
Configuración de replicación en MySQL. Deberá configurar el servidor maestro y esclavo. Todas las lecturas de escritura en la base de datos podrían ir a su servidor esclavo. La ventaja de tener replicación es que puede realizar una copia de seguridad de su servidor esclavo sin interrumpir el servidor maestro. Su aplicación continuará funcionando en el maestro sin ningún tiempo de inactividad.
Usando MySQL Dump
Si su conjunto de datos es pequeño (me doy cuenta de que "pequeño" es un término relativo ... para calificarlo, digamos <10GB), entonces mysqldump probablemente funcionará muy bien. Es fácil, está en línea y es muy flexible. Solo algunas cosas que mysqldump puede hacer: hacer una copia de seguridad de todo o solo ciertas bases de datos o tablas, solo el DDL optimiza el volcado para una restauración más rápida, hace que el archivo sql resultante sea más compatible con otros RDBMS y muchas cosas más.
Sin embargo, las opciones más importantes están relacionadas con la consistencia de su copia de seguridad. Mis opciones favoritas son: - transacción única: esta opción proporciona una copia de seguridad consistente, si (y solo si) las tablas están usando el motor de almacenamiento InnoDB. Si tiene alguna tabla MyISAM que no sea de solo lectura, no use esta opción cuando realice una copia de seguridad. --master-data = 2: esta opción se asegurará de que su volcado sea consistente (haciendo un bloqueo de todas las tablas a menos que haya agregado la opción --single-transaction). La opción --master-data también registra la posición del registro binario en el archivo de volcado resultante (= 2 hace que esta línea sea un comentario en el archivo de volcado)
Nota final sobre mysqldump: tenga en cuenta que el tiempo de restauración puede ser significativamente más largo que el tiempo de copia de seguridad. Dependerá de varios factores, por ejemplo, cuántos índices tiene.
Instantánea de LVM
Para aquellos que tienen conjuntos de datos más grandes, una copia de seguridad física es el camino a seguir. Si bien podría realizar una copia de seguridad en frío (es decir, cerrar el servicio MySQL, copiar el directorio de datos, reiniciar el servicio), muchas personas no quieren tiempo de inactividad. Mi solución favorita son las instantáneas. Esto puede estar caliente (para InnoDB) o requerir un breve bloqueo (para MyISAM). No olvide incluir todos sus datos (incluya ib_logfiles). Lenz proporciona una buena utilidad para ayudar con esto: http://www.lenzg.net/mylvmbackup/
Usando MySQL Enterprise Backup
Ventajas de usar MySQL Enterprise Backup:
- Las copias de seguridad "en caliente" de las tablas de InnoDB se realizan completamente en línea, sin bloquear la copia de seguridad solo de tablas o espacios de tablas particulares
- Solo haga una copia de seguridad de los datos que han cambiado desde una copia de seguridad anterior
- Copia de seguridad comprimida: ahorra almacenamiento hasta un 90% y muchos más.
Referencia:
http://www.mysql.com/products/enterprise/backup/features.html
http://www.mysql.com/products/enterprise/backup.html
Peter Venderberghe
fuente
--single-transaction
pero no se olvide de agregar--events --routines
y siempre uso--triggers
también, aunque está habilitado de forma predeterminada, ya que puede deshabilitarse en my.cnf. Yo diría que siempre es bueno usarlos como práctica estándar, independientemente de si actualmente tiene ese tipo de objetos en su base de datos o no.