martes, 3 de julio de 2007

Esencias MySql

Bueno antes de irme, lo tenia de la semana pasada, un poco de sal del tarro de Esencias.

MySql. Tenemos un servidor, tenemos XXX bases de datos, y se nos corrompen tablas....

Como recuperar.... pues ejecutar un 'repair table', pero un coñazo por cada tabla... etc..

Sacamos al Bash....



#!/bin/sh

#Reparar Tablas BBDD

#Archivos Temporales...
TEMPTABLES=/tmp/databases.sql
TMPRUN=/tmp/tablesrepair.sh
TMPALLRUN=/tmp/ALLtablesrepair.sh

#Listamos BBDD
echo show databases | mysql grep -v Database > ${TEMPTABLES}

#Listado de Tablas por BBDD
cat ${TEMPTABLES} | awk '{print "echo show tables mysql \"" $1 "\" grep -v Tables_in > /tmp/repair." $1 ".sql" }' > $TMPRUN

#Ejecutamos para listar todas las tablas de cada BBDD
sh ${TMPRUN}

#Procesamos Tablas de cada BBDD con programa auxiliar
cat ${TEMPTABLES} | awk '{print "repair2.sh " $1 " /tmp/repair." $1 ".sql " }' > ${TMPALLRUN}

sh ${TMPALLRUN}

//Borrado archivos temporales
rm ${TEMPTABLES}
rm ${TMPALLRUN}
rm ${TMPRUN}
rm /tmp/repair.*.sql




Aqui el programa auxiliar 'repair2.sh'


#!/bin/sh

#Reparar Tablas BBDD# 1 = BBDD# 2 = TABLAS
cat $2 | awk '{print "repair table " $1 ";"}' mysql "$1"




'Salut y forza al canut'.

No hay comentarios.:

Publicar un comentario