List:Spanish« Previous MessageNext Message »
From:Oscar Julian Rosales Blanco Date:September 28 2009 5:31pm
Subject:Re: Backup en mysql
View as plain text  
El lun, 28-09-2009 a las 18:14 +0200, burum escribió:
> Buenos días,
> 
> Yo tengo el siguiente script para sacar un dump de todas las bases de  
> datos. Después ya utilizo el Veritas para copiar configuración y los  
> volcados de la base de datos; obviamente puedes utilizar cualquier  
> sistema de backup que tengas en tu infraestructura. Saludos.
> 
> #!/bin/bash
> # Opciones de mysqldump
> # Mirar en man mysqldump
> OPT="--opt --max_allowed_packet=200M"
> 
> FECHA=`date +%d-%m-%Y_%Hh%Mm`
> 
> echo "Borrar copias previas"
> rm -rf /var/backup/*.sql.gz
> 
> DATABASES=`mysql --skip-column-names -e "show databases" | sed 's/ /%/ 
> g'`
> 
> for DB in $DATABASES
> do
> 	echo "Procesando...    " $DB
> 	mysqldump $OPT $DB  > /var/backup/${FECHA}_$DB.sql
> 	echo "Comprimiento...  " $DB
> 	gzip --best /var/backup/${FECHA}_$DB.sql
> done
> 
> El 22/09/2009, a las 16:42, Fernando Romero escribió:
> 
> > Como puedo schedulear un backup en mysql, alguien me puede ayudar.
> > Saludos.
> 

El problema de un script como este es que hace copias de todas la bases
de datos alojadas en el servidor.

Pienso: No será mejor hacer copias solo de las bases de datos
modificadas desde la ultima copia de seguirad?

En caso afirmativo al script le añadiría una función previa que
encontrara las base de datos que fueron modificadas desde la ultima
copia.

Aunque actualmente uso un script que tiene una par de funciones como
estas:

function lista_logs {
find $DL -mtime -1 | grep mysql-bin | egrep -v "index|gz|slow" 
}

Optiene la lista de los ficheros mysql-binlog que han sido modificados
en las ultimas 24 horas (Las copias se realizan cada 24 horas)


function lista_db {
for i in `lista_logs`
 do
 mysqlbinlog $i | grep ^use >> $DS/check
 done
LISTA=`cat $DS/check | awk '{print $2}' | awk -v FS="/*" '{print $1}' |
sort -u`
rm -f $DS/check
}

de la lista de log obtenidos ocon la función lista_logs extra el dato de
cuales son las bases de datos modificadas (se esto por que cuando se
inicia la modificación de una base de datos se usa el comando use
<database>

Una vez tengo la lista de bases de datos modificadas, puedo hacer la
copia de seguridad de forma similar a la que planteas.

Creo que este configuración no es la mejor y es posible que usando los
parámetros de mysqlbinlog puedo extraer los bases de datos modificadas a
partir de una fecha-hora exacta, lo que seria una solución mas elegante.





-- 
Oscar Rosales Blanco
JID:osro@stripped
http://www.polosur.org/blog
Sigueme en twitter http://www.twitter.com/osrob

Thread
Backup en mysqlFernando Romero22 Sep
  • Re: Backup en mysqlMax Bube22 Sep
    • Re: Backup en mysqlGN24 Sep
  • Re: Backup en mysqlJuan Manuel Acuña Barrera22 Sep
    • Re: Backup en mysqlMax Bube22 Sep
      • Re: Backup en mysqlJuan Manuel Acuña Barrera22 Sep
    • Re: Backup en mysqlewen fortune22 Sep
  • Re: Backup en mysqlewen fortune22 Sep
  • Re: Backup en mysqlburum28 Sep
    • Re: Backup en mysqlOscar Julian Rosales Blanco28 Sep
      • Re: Backup en mysqlGN28 Sep
        • RE: Backup en mysqlThomas Goik - auxion.de28 Sep
          • RE: Backup en mysqlGalo Izquierdo V28 Sep
            • Re: Backup en mysqlGN29 Sep
          • RE: Backup en mysqlOscar Julian Rosales Blanco28 Sep
        • Re: Backup en mysqlOscar Julian Rosales Blanco28 Sep