Bonjour à tous,
Récemment, un problème d'interblocage (deadlock) a affecté un de nos serveurs MySql.
Afin de détecter ce genre de problème rapidement, on m'a demandé de développer un outil.
Périodiquement, toutes les 5 minutes en l'occurrence, cet outil doit inspecter les bases de données à la recherche de verrous qui seraient posés depuis "trop longtemps" (nous allons définir des durées maximales d'existence des verrous pour chaque application).
J'ai effectué des recherches sur la façon d'obtenir une liste des verrous associés à une base.
J'ai trouvé deux pistes :
- SHOW ENGINE INNODB STATUS
- SHOW FULL PROCESSLIST
Mais, en effectuant des tests, j'ai l'impression que ces commandes ne permettent pas de "voir" les verrous.
Mon test est simple : sur un client MySql, je verrouille une table. Sur un autre client, je lance la commande, et j'observe le résultat.
Connaissez-vous un moyen de lister les verrous posés sur une base?
Il faut aussi avoir l'information suivante : pour chaque verrou, il faut savoir depuis combien de temps ce dernier est posé.
Note :
Merci,mysql Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (i486) using readline 6.1
Denis
Partager