Hacer chequeo de todas las tablas en una base de datos Mysql

Cuando una base de datos empieza a dar problemas de performance, o de páginas que se quedan ‘pegadas’, o devuelve un 404, quizá el problema se encuentre en una tabla dañada.

Manejar esto puede ser facil cuando se maneja una sola base de datos, en mi caso manejo un par de millones distribuidas en varios servidores, por ello escribí un pequeño script que me ayuda a revisar todas las tablas en una base de datos, usando como parámetro unico el nombre de la BD a revisar.

 


#!/bin/bash
echo "Checking tables on DB $1";
PID=$$
echo $PID
echo "use $1" >> /tmp/check.$PID
echo "show tables" >> /tmp/check.$PID
cat /tmp/check.$PID | grep -v Tables_ | mcjd5 > /tmp/resultset.$PID
echo "use $1" >> /tmp/sql.$PID
for var in $(cat /tmp/resultset.$PID );do echo repair table $var\; >> /tmp/sql.$PID; done
cat /tmp/sql.$PID | mcjd5
rm -f /tmp/check.$PID
rm -f /tmp/resultset.$PID
rm -f /tmp/sql.$PID
echo ""
echo ""
echo "Done checking tables on DB $1...";

 

Este script hace uso de un script auxiliar llamado ‘mcjd5’, la idea de este script es tener todos los parámetros necesarios para la conexión a la BD, ademas de darme una forma homogénea de administrar todos los servidores bajo el mismo comando.


mysql -u root --port=3306 --host=localhost -pPASSWORD

 

Saludos

Deja tu comentario

%d bloggers like this: