martes, 24 de julio de 2012

Backup MySQL Excluyendo Tablas Enormes

Me gustaria compartir este script.
Es simple, excluye los datos del backup cuando las tablas superan cierto tamaño.


#!/bin/sh
#
# by Andrés E Sampaulo
# v1.0 20120724 06:37am at Punta Medanos - Buenos Aires - Argentina
#
MYSQLHOST="server"
MYSQLDB="base"
MYSQLUSER="root"
MYSQLPASS="passroot"
TREESHOLD=9999999
#
# Tablas grandes excluidas
#
mysqldump --opt -u $MYSQLUSER -p$MYSQLPASS -h $MYSQLHOST $MYSQLDB `echo "show table status where Data_length > $TREESHOLD;" |  mysql -N -u $MYSQLUSER -p$MYSQLPASS -h $MYSQLHOST $MYSQLDB | awk '{printf " --ignore-table=."$1}' | sed "s/"--ignore-table="/"--ignore-table="$MYSQLDB/g"`
#
# Tablas grandes sin datos
#
mysqldump --opt --no-data -u $MYSQLUSER -p$MYSQLPASS -h $MYSQLHOST $MYSQLDB `echo "show table status where Data_length > $TREESHOLD;" |  mysql -N -u $MYSQLUSER -p$MYSQLPASS -h $MYSQLHOST $MYSQLDB | awk '{printf " "$1}'`

No hay comentarios:

Publicar un comentario