Tareas #5536

Respaldos mal configurados en nobel

Added by Daniel Viñar Ulriksen over 2 years ago. Updated over 1 year ago.

Status:ResueltaStart date:11/28/2016
Priority:NormalDue date:
Assignee:Sebastián Sasías% Done:

90%

Category:-Spent time:1.00 hour
Target version:-

Description

En nobel los respaldos de la base mysql nube no están configurados según nuestras convenciones para articularse con el backuppc.

Conviene analizar lo que está hecho ahí, ver de ponerlo en línea con nuestros procedimientos, y ver también si de esta propuesta no surgen mejoras de nuestro procedimiento.


Related issues

Related to Servicios de nube - Tareas #5761: Se cayó nube.csic por problemas de espacio para mysql Resuelta 07/21/2017

History

#1 Updated by Daniel Viñar Ulriksen over 2 years ago

Los respaldos no se hacen con los procesos que desencadena el backuppc, sino con un cron definido en el crontab:

0 1 * * * /root/mysqlrespaldo.sh

Y en ese script encontramos:

#!/bin/sh
mysql -u oc_ldeniz -p *****  -e ‘FLUSH TABLES WITH READ LOCK;’ nube # Esto Permite asegurar primero la base de datos
mysqldump -u oc_ldeniz -p p ***** nube | gzip -9 > /var/lib/mysql/respaldosmysql/nube_`date '+%d-%m-%Y_%T'`.sql.gz # Aqui se genera el volcado y se comprime con gzip
mysqldump -u oc_ldeniz -p p ***** nube > /var/libr/mysql/respaldosmysql/nube_`date '+%d-%m-%Y_%T'`.sql # por políticas se respalda normalmente
mysql -u oc_ldeniz -p p ***** -e ‘UNLOCK TABLES;’ nube # se quitan los seguros a las tablas que respaldamos
find -name '*.gz' -type f -mtime +15 -exec rm -f {} ; # y aqui buscamos los archivos gz y borramos los que tengan más de 15 días.
find -name '*.sql' -type f -mtime +15 -exec rm -f {} ; # y aqui buscamos los archivos sql y borramos los que tengan más de 15 días.

#2 Updated by Daniel Viñar Ulriksen over 2 years ago

Hay un error (/var/libr/) que hace que los .sql no se estén creando, y debe haber otro error que hace que los archivos no se borran.

#3 Updated by Daniel Viñar Ulriksen over 2 years ago

  • Status changed from Nueva to En curso

¿Cómo sabe en qué carpetas hay que borrar los *.sql y *.sql.gz?

OjO; si funcionara estaríamos borrando todos los *.sql y *.sql.gz del servidor, ¿no?

#4 Updated by Daniel Viñar Ulriksen over 2 years ago

A mano, el script no me funciona...

#5 Updated by Daniel Viñar Ulriksen over 2 years ago

Corrijo el script:

#!/bin/sh
# mysql -u oc_ldeniz -p*******  -e 'FLUSH TABLES WITH READ LOCK;' nube # Esto Permite asegurar primero la base de datos
mysqldump -u oc_ldeniz -p******* nube | gzip -9 > /var/lib/mysql/respaldosmysql/nube_`date '+%d-%m-%Y_%T'`.sql.gz # Aqui se genera el volcado y se comprime con gzip
mysqldump -u oc_ldeniz -p******* nube > /var/lib/mysql/respaldosmysql/nube_`date '+%d-%m-%Y_%T'`.sql # por políticas se respalda normalmente
# mysql -u oc_ldeniz -p******* -e 'UNLOCK TABLES;' nube # se quitan los seguros a las tablas que respaldamos
find /var/lib/mysql/respaldosmysql/ -name '*.gz' -type f -mtime +15 -exec rm -f '{}' \; # y aqui buscamos los archivos gz y borramos los que tengan más de 15 días.
find /var/lib/mysql/respaldosmysql/ -name '*.sql' -type f -mtime +15 -exec rm -f '{}' \; # y aqui buscamos los archivos sql y borramos los que tengan más de 15 días.

notar: -p****, sin espacio.
Comenté el bloqueo de tablas porque el usuario mysql no tiene los derechos.

#6 Updated by Daniel Viñar Ulriksen over 2 years ago

Es una buena idea poner un lock de las tablas o un single-transaction, para tener una visión coherente en un momento del tiempo del conjunto de la base.

Ver por ejemplo esto

#7 Updated by Daniel Viñar Ulriksen over 2 years ago

  • % Done changed from 0 to 20

#8 Updated by Daniel Viñar Ulriksen over 2 years ago

Estamos en el caso "All Data is InnoDB" (veriiqué por phpmyadmin la base mysql)

Vamos a seguir esta sugerencia:

mysqldump -uuser -ppass --single-transaction --routines --triggers --all-databases > backup_db.sql

--single-transaction produces a checkpoint that allows the dump to capture all data prior to the checkpoint while receiving incoming changes. Those incoming changes do not become part of the dump. That ensures the same point-in-time for all tables.

--routines dumps all stored procedures and stored functions

--triggers dumps all triggers for each table that has them

#9 Updated by Daniel Viñar Ulriksen over 2 years ago

  • Status changed from En curso to Resuelta
  • Assignee changed from Daniel Viñar Ulriksen to Sebastián Sasías
  • % Done changed from 20 to 80

Nobel también tenía un (mal) script respaldo.sh, pero en /usr/local/etc/, no como debe para nuestro backuppc, en /usr/local/etc/respaldo

Ponemos un respaldo.sh bien hecho (a partir de lo que se tenía en /root), y en el buen lugar.

#10 Updated by Daniel Viñar Ulriksen over 1 year ago

  • Related to Tareas #5761: Se cayó nube.csic por problemas de espacio para mysql added

#11 Updated by Daniel Viñar Ulriksen over 1 year ago

  • % Done changed from 80 to 90

Hoy se llenó la partición de mysql en nobel (ver #5761). Tuvimos que borrar respaldos .sql recientes, que pensábamos haber suprimido de los respaldos.

Faltaba desactivar el script /root/mysqlrespaldo.sh del crontab, lo qe vimos con un:

crontab -e

Also available in: Atom PDF