Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Como realizar un backup con mysqldump sin bloquear tablas myisam?

Estas en el tema de Como realizar un backup con mysqldump sin bloquear tablas myisam? en el foro de Mysql en Foros del Web. Hola Resulta que tengo una base de datos muy grande (60G aprox) con tablas innodb y myisam y estoy realizando los backups con mysqldump, (esta ...
  #1 (permalink)  
Antiguo 30/03/2012, 11:12
Avatar de marcerozba  
Fecha de Ingreso: marzo-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Exclamación Como realizar un backup con mysqldump sin bloquear tablas myisam?

Hola
Resulta que tengo una base de datos muy grande (60G aprox) con tablas innodb y myisam y estoy realizando los backups con mysqldump, (esta sobre solaris), con el comando:

mysqldump -h myip -P puerto -u usuario-ppassword --order-by-primary -q --routines --dump-date -f --triggers -v mybd

pero cuando un usuario hace un update o un delete sobre una tabla myisam y en ese momento se esta realizando el backup se pone en cola el proceso en espera de terminar el backup de esa tabla y de ahí en adelante todos los procesos que se estén haciendo sobre dicha tabla.

El problema es que hay tablas que pueden durar una hora realizando el respaldo y llega un momento que el sistema no responde de la cantidad de procesos que hay en cola, que puedo hacer?
  #2 (permalink)  
Antiguo 02/04/2012, 01:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Como realizar un backup con mysqldump sin bloquear tablas myisam?

Hacer un backup sin bloquear seria peor que no hacer backup.... puesto que el backup obtenido mientras hay clientes modificando datos podría darte como resultado un backup incoherente y por tanto inútil... en otras palabras si tienes que restaurar ese backup la base de datos resultante en el mejor de los casos le faltaran datos y fácilmente tendrá datos inconsistentes.

Soluciones....

Hacer el backup en una hora que no haya clientes (eso es difícil de determinar si tienes clientes de todo el mundo)

Detener la aplicación mientras se hace un backup (aquí en FDW lo hacen así.... creo)

Rediseñar la base de datos para que sea mas rápido el proceso, particionar tablas....

Hacer backups incrementales, es decir solo copiar aquello que ha cambiado...


http://dev.mysql.com/doc/mysql-enter...cremental.html

esto sobretodo reduce la necesidad de espació para guardar los backups no se si reduce el tiempo de bloqueo.

Analizar las options que estas usando y quitar las que sean innecesarias....

--order-by-primary order-by-primary Dump each table's rows sorted by its primary key, or by its first unique index

quizás si quitas esta option iría mas rápido... seguro que si no fuerzas el orden de los datos los copiará mucho mas rápido.

--routines
--triggers

Si no has hecho cambios en la estructura de la base de datos ni en sus objetos, debes eliminar todo lo que no sean datos del backup...

Puedes tener un respaldo de rutinas y triguers estático.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 02/04/2012 a las 07:10

Etiquetas: myisam
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:52.