Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/06/2015, à 14:39

outcast

[python] Défragmenter les bases Mysql

Bonjour à tous,

Une base Mysql est vivante et à force de insert, update et delete, les tables se défragmentent et rendent Mysql lent.
Il y a des commandes pour défragmenter les tables mais un script qui le fait quotidiennement et qui en plus vous prévient quand une table est corrompue ou a un problème c'est encore mieux.

Ce script est mysqldefrag.py dispo ici :
https://github.com/WassimAttar/mysqldefrag

Pour l'installer :

wget https://github.com/WassimAttar/mysqldefrag/raw/master/mysqldefrag.py

Faut avoir également installé le module python-mysqldb ou python-mysql.connector.
Le mot de passe root de mysql doit être indiqué dans le fichier de config /root/.my.cnf avec cette entrée

[client]
password=p4ss0rD

Cas d'usage :
Mode silencieux : check, analyse, optimise et répare toutes les bases.

python mysqldefrag.py

Mode verbeux : check, analyse, optimise et répare toutes les bases en affichant un court rapport.

python mysqldefrag.py -v
----------------------------------
DataBase : `wp-tech`
77 CHECK in 1.214 seconds
77 ANALYZE in 0.035 seconds
75 OPTIMIZE in 7.659 seconds
75 REPAIR in 0.112 seconds
----------------------------------

Mode un peu plus verbeux : check, analyse, optimize et répare toutes les bases en affichant un long rapport.

python mysqldefrag.py -vv
----------------------------------
DataBase : `wp-tech`
19 ANALYZE in 0.021 seconds
ANALYZE `commentmeta` InnoDB OK
ANALYZE `comments` InnoDB OK
ANALYZE `links` InnoDB OK
ANALYZE `options` InnoDB OK
ANALYZE `postmeta` InnoDB OK
ANALYZE `posts` InnoDB OK
ANALYZE `signups` InnoDB OK
ANALYZE `term_relationships` InnoDB OK
ANALYZE `term_taxonomy` InnoDB OK
ANALYZE `terms` InnoDB OK
ANALYZE `usermeta` InnoDB OK
ANALYZE `users` InnoDB OK
----------------------------------

Envoi du rapport par mail : check, analyse, optimise, répare toutes les bases et envoie un court rapport par mail.
Si une table est corrompue ou un erreur est survenue, elle est inscrite dans l'objet du mail pour alerter.

python mysqldefrag.py --email john@doe.com

Dump des bases pour sauvegarde : check, analyse, optimise, répare toutes les bases et les exporte dans un dossier.

python mysqldefrag.py --dumppath /root/dump_database/

Principal usage de mysqldefrag, cronjob quotidien : check, analyse, optimise et répare toutes les bases, les exporte dans un dossier et envoie un court rapport par mail à 4 heure du matin.

0 4 * * * python mysqldefrag.py --email john@doe.com --dumppath /root/dump_base/

Dernière modification par outcast (Le 17/06/2015, à 14:41)

Hors ligne