¿Cómo aumentar la copia de seguridad y restauración rápidas de la base de datos de 500GB usando mysqldump?

10

Hay una base de datos de un tamaño de 500 GB. Las tablas en la base de datos A contienen tablas MyISAM e INNODB. Las tablas MyISAM son tablas maestras y las tablas Innodb son tablas de transacciones principales.

Realice copias de seguridad y restaure utilizando el volcado de mysql, y deje de hacerlo mucho tiempo o días.

  • max_allowed_packet = 1G
  • foreign_key_checks = 0
  • auto_commit = off
Martín
fuente
1
Solo quiero asegurarme de que está utilizando --opt con la utilidad mysqldump. Esto es un ENORME ahorro de tiempo al recargar. sin ella, mysqldump crea el archivo sql fila por fila. --opt does: agrega bloqueos, suelta y vuelve a crear con todas las opciones de creación habilitadas, deshabilita temporalmente las teclas para una recarga rápida y luego vuelve a encender las teclas al final para reconstruir los índices después de que se haya escrito. Concatena varias filas juntas en insertos para reducir el tamaño de archivo Y el tiempo de análisis de cada instrucción (hasta en un 70%) y permite - rápido para reducir la carga contra el DB de volcado cuando se ejecuta. reduce el tiempo de carga en un 80%
ppostma1

Respuestas:

5

Pero el enlace también recomienda XtraBackup de Percona, que es más rápido, no tiene bloqueos en las mesas que ya están en uso y no gana tiempo para la restauración. Para 500 GB de datos, prefiero que Percona XtraBackup sea rápido y eficiente a menos que desee convertirlos al modelo innodb_file_per_table si no fuera del servidor DB existente. El siguiente enlace explica cómo proceder.

http://www.percona.com/doc/percona-xtrabackup/innobackupex/creating_a_backup_ibk.html

Mannoj
fuente
1
El problema con Percona Xtrabackup es que mysqld debe detenerse para restaurar una base de datos.
dr_
2

Mira mydumper. Es mucho más rápido que mysqldump: la nueva versión mydumper 0.6.1 ofrece características de rendimiento y usabilidad

Puede descargar desde aquí: https://github.com/maxbube/mydumper

¿Qué es mydumper? ¿Por qué?

  • Paralelismo (por lo tanto, velocidad) y rendimiento (evita costosas rutinas de conversión de juegos de caracteres, código eficiente en general)
  • Salida más fácil de administrar (archivos separados para tablas, volcado de metadatos, etc., datos fáciles de ver / analizar)
  • Consistencia: mantiene una instantánea en todos los hilos, proporciona posiciones precisas de registro maestro y esclavo, etc.
  • Capacidad de administración: admite PCRE para especificar inclusiones y exclusiones de tablas y bases de datos
Silas Palmer
fuente
1

Creo que la pregunta es sobre cómo restaurar más rápido desde los archivos de volcado finalizados de mysqldump y no una solución de copia de seguridad diferente.

Una de las formas en que puede hacerlo es mediante la creación de grupos de tablas en su esquema y crear un usuario de base de datos separado para cada grupo y usar permisos MySQL para no permitir que las tablas se inserten para usar todos menos un usuario de base de datos.

Esta es una técnica probada, rápida, casi paralela, pero no está 100% seguro de cuánto tiempo tomará restaurar desde 500G. Pero en mi humilde opinión, necesitas algo paralelo. Vea el siguiente enlace para ver un ejemplo.

Restauración rápida y paralela de volcados de SQL (mysqldump) para MySQL

syed
fuente
1

Pruebe lo siguiente con innobackupex:

innobackupex --parallel=7 --rsync  /var/mysql/backup

Puede cambiar el número de proceso paralelo como desee. Como mencionó que tiene tablas myisam, el parámetro "rsync" ayudará a acelerar la copia de seguridad de esas.

Haluk
fuente