¿Cómo puedo hacer una copia de seguridad de bases de datos de varios gigabytes en MySQL? Puntos de bonificación para restauraciones más rápidas

11

Tengo una base de datos de 4GB en MySQL. ¿Cómo puedo hacer una copia de seguridad? Además, ¿hay alguna manera de acelerar el proceso de restauración en caso de que necesite recuperarme?

Actualmente utilizo un trabajo cron todas las noches que llama mysqldumpa volcar todo y mantengo 3 días de copias de seguridad.

nicudotro
fuente

Respuestas:

14

Tenemos alrededor de 90 GB en un MySQL, así que aquí hay algunas sugerencias:

  • Puede probar la siguiente llamada: mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar(Use los documentos para verificar si esos interruptores funcionan para usted).
  • Si usa solo MYISAM-tables, copiar la base de datos a otra unidad y tararlo, también podría ser una alternativa. Sin embargo, esto no funcionará con INNODB, ya que mantiene un archivo adicional. Además, debes probar esto cuidadosamente.
  • Habilite los registros binarios y haga una copia de seguridad de ellos. (¡Este es probablemente mi favorito!)
  • Configure la replicación y hacer la copia de seguridad en uno de sus esclavos, y luego deje que se ponga al día con el resto. Es bastante agradable cuando se ejecuta, pero el problema es hacerlo funcionar. Replicar no es divertido con MySQL. :(
  • ¿Su sistema de archivos admite instantáneas? Si lo hace, entonces es una gran oportunidad para usarlos.
  • Use una solución comercial, como Amanda .
Hasta que
fuente
10

La mejor manera sería sin interrumpir el funcionamiento normal. Para sistemas de alta confiabilidad y tolerantes a fallas, tiene 2 bases de datos que se mantienen sincronizadas y realiza una copia de seguridad de la secundaria. (por ejemplo, este artículo de howtoforge )

De lo contrario, lea el manual : use myseldump como lo hace actualmente, o use el script mysqlhotcopy (use igual que mysqldump), o detenga el DB y simplemente copie los archivos frm, MID, MYI (usando rsync).

Creo que el mecanismo de detener + copiar archivos es el más rápido que obtendrás.

gbjbaanb
fuente
3

Si algunas de sus bases de datos son de solo lectura o modificadas, rara vez se señalan como cron menos frecuentes.

JJ
fuente
2

Para responder a su pregunta, la opción extended_insert funciona bien para mí. Si tiene suficientes recursos para la restauración, extended_insert insertará grandes cantidades de datos en una sola consulta, haciendo que la restauración sea más rápida.


fuente
1

Realmente deberías considerar el Xtrabackup de Percona

El script de envoltura "innobackupex" puede manejar MyISAM, pero para una copia de seguridad sin bloqueo / en línea, todas sus tablas deben ser InnoDB.

Salud

HTTP500
fuente