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