2009-01-03 16 views
12

Estamos utilizando MySQL versión 5.0 y la mayoría de las tablas son InnoDB. Ejecutamos la replicación en un servidor esclavo. Estamos pensando en hacer una copia de seguridad de los archivos de registro de MySQL a diario.¿Cuál es la mejor manera de hacer copias de seguridad incrementales en MySQL?

Preguntas

  • ¿Hay alguna otra forma de hacer una copia de seguridad incremental sin necesidad de utilizar los archivos de registro?
  • ¿Cuáles son las mejores prácticas al realizar copias de seguridad incrementales?

Respuesta

7

AFAIK la única forma de hacer copias de seguridad incrementales es mediante el uso del registro binario. Tiene otras opciones si desea hacer copias de seguridad completas (InnoDB hotcopy), pero incremental significa que debe registrar todas las transacciones realizadas.

Debe preguntarse por qué está realizando una copia de seguridad de los datos. Como tiene un esclavo para la replicación, ¿supongo que la copia de seguridad es principalmente para revertir datos en caso de eliminación accidental?

Probablemente rotaría los registros cada 1 hora y tomaría una copia de seguridad de los mismos. Es decir, la restauración dejaría los datos como máximo con una hora de antigüedad y podrá restaurarlos en cualquier momento dado desde la última instantánea completa.

+2

Entonces, ¿cómo lo hacemos? ¿Tiene algunos códigos de muestra en PHP/MySQL? – Tarik

0

se puede volcar sus esquemas regularmente con mysqldump, utilizando siempre el mismo nombre de archivo y la ruta para cada esquema (es decir, la sustitución de la más reciente)

luego combinar eso con cualquier herramienta de copia de seguridad que soporta copia de seguridad incremental/triángulo, por ejemplo rdiff-backup, duplicity, Duplicati o Areca Backup. Un ejemplo de los documentos del duplicidad:

Debido a la duplicidad utiliza librsync, los archivos incrementales son el espacio y sólo grabar las partes de los archivos que han cambiado desde la última copia de seguridad

De esa manera su primera copia de seguridad eficiente sería la copia comprimida del primer volcado completo, y el segundo contendría las diferencias comprimidas del primer y segundo volcado, y así sucesivamente. Puede restaurar el archivo mysqldump de cualquier punto en el tiempo y luego restaurar ese archivo en MySQL.

Cuestiones relacionadas