soporta - optimizar consultas lentas mysql
¿Cómo puedo hacer una copia de seguridad de una gran base de datos? (2)
Necesito hacer una copia de seguridad de una base de datos Drupal, es enorme. Entonces tiene más de 1500 tablas (no me culpes, es una cosa de Drupal) y tiene 10GB de tamaño.
No pude hacerlo con PHPMyAdmin, acabo de recibir un error cuando comenzó a compilar el archivo .sql.
Quiero asegurarme de que no romperé nada ni bajaré el servidor ni nada cuando intente hacer una copia de seguridad.
Iba a intentar un mysqldump en mi servidor y luego copiar el archivo localmente, pero me di cuenta de que esto podría causar problemas imprevistos. Entonces mi pregunta es: ¿es seguro usar mysqldump en tantas tablas a la vez e incluso si es seguro, hay algún problema que un archivo tan grande pueda provocar en el futuro para reconstruir la base de datos?
Gracias por la entrada chicos.
¿Es seguro usar mysqldump en tantas tablas a la vez?
mysqldump
copias de seguridad diarias con mysqldump
en servidores literalmente 10 veces este tamaño: más de 15000 tablas, más de 100 GB.
Si no ha examinado el contenido de un archivo producido por mysqldump
... debería hacerlo, porque ver su resultado es comprender por qué es una utilidad de copia de seguridad intrínsecamente segura:
Las copias de seguridad son legibles por el ser humano, y consisten completamente en las declaraciones SQL necesarias para crear una base de datos exactamente igual a la copia de seguridad.
De esta forma, su contenido se manipula fácilmente con herramientas ubicuas como sed
y grep
y perl
, que se pueden usar para arrancar una sola tabla de un archivo para la restauración, por ejemplo.
Si falla una restauración, el error indicará el número de línea dentro del archivo donde ocurrió el error. Esto generalmente está relacionado con el comportamiento de errores en la versión del servidor donde se creó la copia de seguridad (p. Ej., MySQL Server 5.1 le permitió crear vistas en algunas situaciones en las que el servidor no aceptaría el resultado de su propia instrucción SHOW CREATE VIEW
. la declaración no fue considerada, por el mismo servidor, como una definición de vista válida, pero esto no fue un defecto en mysqldump, o en el archivo de copia de seguridad, per se ) .
Restaurar desde una copia de seguridad creada por mysqldump no es muy rápido, porque el servidor debe ejecutar todas esas sentencias de SQL, pero desde la perspectiva de la seguridad, yo diría que no hay una alternativa más segura, ya que es la herramienta de copia de seguridad canónica y es probable que se detecten y solucionen cualquier error en virtud de la gran base de usuarios, si nada más.
No use la opción --force
, excepto en emergencias. Causará que la copia de seguridad omita los errores encontrados en el servidor mientras se está ejecutando la copia de seguridad, lo que ocasionará que la copia de seguridad esté incompleta sin prácticamente ninguna advertencia. En cambio, encuentre y corrija cualquier error que ocurra. Los errores típicos durante la copia de seguridad están relacionados con las vistas que ya no son válidas porque hacen referencia a tablas o columnas que se han renombrado o eliminado, o donde el usuario que creó originalmente la vista se ha eliminado del servidor. Solucione estos problemas redefiniendo la vista correctamente.
Sobre todo, pruebe sus copias de seguridad al restaurarlas en un servidor diferente. Si no has hecho esto, realmente no tienes copias de seguridad.
El archivo de salida se puede comprimir, generalmente de forma sustancial, con gzip / pigz, bzip2 / bpzip2, xz / pixz o zpaq. Estos se enumeran en orden aproximado por cantidad de espacio guardado (gzip guarda menos, zpaq guarda más) y velocidad (gzip es el más rápido, zpaq es el más lento). pigz, pbzip2, pixz y zpaq se aprovecharán de múltiples núcleos, si tiene entonces. Los otros solo pueden usar un solo núcleo a la vez.
Use mysqlhotcopy , funciona bien con grandes bases de datos
- Trabajar solo en MyISAM y ARCHIVE-tablas.
- Trabaja solo en el servidor donde está almacenada la base de datos.
- Esta utilidad está en desuso en MySQL 5.6.20 y eliminada en MySQL 5.7