Got error 28 from storage engine query: SELECT * FROM …

juin 16th, 2009
|

Grand coup de stress pour moi ce soir ! En effet, les requêtes SQL des sites hébergés sur cette machine n’avaient plus aucun sens: drop, réponses érronées et j’en passe.. en jetant un oeil dans les logs j’ai trouvé ça:

1
2
3
[Tue Jun 16 18:05:28 2009] [error] [client x.x.x.x] Got error 28 from storage engine query: SELECT * FROM ...
[Tue Jun 16 18:06:58 2009] [error] [client x.x.x.x] Got error 28 from storage engine query: SELECT * FROM ...
[Tue Jun 16 18:07:18 2009] [error] [client x.x.x.x] Got error 28 from storage engine query: SELECT * FROM ...

Il se trouve que cette erreur arrive quand MySQL n’a plus d’espace disque disponible… En effet, le script – buggy – ne supprimais plus les vieux backups lors de la création de nouveaux. J’en suis vite arrivé a saturer ma partition temporaire. Erreur de débutant !

1
2
3
$ df -h
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/md1 10G 10G 7,3G 0% /tmp

Pour me rendre d’autant plus utile, voici un petit script pour monitorer l’espace utilisé sur vos disque, il enverra un mail en cas d’utilisation d’une partition a plus de 95%.

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
df -H | grep -vE '^[a-zA-Z]|tmpfs|cdrom|udev' | awk '{ print $5 " " $1 }' | while read line;
do
#echo $line
usep=$(echo $line | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $line | awk '{ print $2 }' )
if [ $usep -ge 95 ]; then
echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
mail -s "Alert: Almost out of disk space $usep%" alertme@crashdump.fr
fi
done

A ajouter dans vos crontabs:

1
*/30 * * * * /path-to-file/mail-warn-disk-usage.sh

Sur ce, je peux reprendre un activité normale.. détendu !

Tags:

One Comment:

  1. Autant je trouve que le php et le Mysql ce marie bien entre eux, autant je trouve quand meme que le mysql est un langage assez moche…
    Mais sinn bravo ;)
    C'est avec des petits bouts de codes qu'on forme un bon programme!

Leave a comment: