Karlesnine.com

Aller au contenu Aller au menu Aller à la recherche

vendredi, mai 28 2010

Apparmor unbutu karmic mysql kernel error

J'ai souvent, toute les 5 minutes, une erreur kernel sur deux serveurs mysql qui tourne avec ubuntu karmic 9.10.

May 27 12:05:16 around-the-word-sql1 kernel: [8464095.444564] type=1503 audit(1274954716.320:31928): operation="truncate"
info="Failed name lookup - deleted entry" error=-2 pid=3211 parent=8922 profile="/usr/sbin/mysqld" requested_mask="w::"
denied_mask="w::" fsuid=109 ouid=109 name=2F746D702F6962384F4A4D336B202864656C6574656429

Après quelque recherche c'est visiblement un problème de kernel, un ticket est présent sur launchpad.net. Mon soucis c'est ces deux serveurs sont en 24/24 et je peux pas les rebooter.

J'ai constaté que Apparmor qui est en cause ne surveillait plus mysql sur ubuntu lucid 10.5. En outre le net était pleins de plainte sur le peu de souplesse d'Apparmor dans la surveillance du DataDir de mysql.

J'ai trouver la solution la doc ubuntu Debugging Apparmor.

/etc/init.d/apparmor stop
 * Unloading AppArmor profiles
   ...done.
 
touch /etc/apparmor.d/disable/usr.sbin.mysqld
 
apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld 
 
/etc/init.d/apparmor start
 * Starting AppArmor profiles
Skipping profile in /etc/apparmor.d/disable: usr.sbin.mysqld
   ...done.

jeudi, avril 22 2010

Mysql infobright ICE ne démarre pas

Vous avez installer Mysql infobright ICE et celui ci refuse de démarrer ? le script d'init /etc/init.d/mysqld-ib vous affiche une tripoter de point et ce termine sans message au bout de son timeout ?

Les logs

Regarder les log infobright dans le fichier bh.err présent dans le répertoire data , pas défaut c'est /usr/local/infobright/data.

Perso j'ai trouvé cela

100421 11:19:07 [ERROR] Can't start server : Bind on unix socket: Permission denied
100421 11:19:07 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql-ib.sock ?
100421 11:19:07 [ERROR] Aborting
 
100421 11:19:07 [Note] /usr/local/infobright/bin/mysqld: Shutdown complete

/tmp

Conclusion impossible de créé un socket dans /tmp. Cela arrive également avec Mysql "classique". Un coup d'oeil sur les droits sur /tmp me montre que je suis pas en 777. La solution :

chmod 1777 /tmp

lundi, mars 8 2010

Sauvegarder ces bases de données Mysql sur un espace Amazon S3

Un exemple simplisme de script automatisant la sauvegarde des bases de donnée mysql de votre serveur sur un stockage amazon S3.

Ce script nécessite d'avoir un compte sur Amazon Simple Storage Service. Allez sur la page Amazon S3 homepage, cliqué sur le bouton "Sign up for web service" et inscrivez vous. Vous devrez fournir votre carte de crédit et en autorisé le débit en fonction de l'utilisation que vous ferez du service. Suite à cette inscription vous posséderez une clé d' access et une clé Secrete vous permettant d'accéder au service.

Vous devez également avoir installé le paquet debian s3cmd

apt-get install s3cmd

Votre clé d' access et votre clé Secrete à disposition lancer la commande suivante pour configurer vos outils s3cmd et leur donner accès à Amazon

s3cmd --configure

Enfin le script, des plus simple, non ?

#!/bin/bash
#
 
# Mot de passe Mysql
$MDP="Mots de passe Mysql"
 
# ex : 1.2010-03-01_14h48
DayNameDump=`date +%w.%Y-%m-%d_%Hh%M`;
 
# Monday = 1 etc..
DayInWeek=`date +%w`;
 
# Pour Chaque DB de mysql sauf Database|information_schema|mysql
for I in `mysql -p$MDP -B -e "show databases;" | egrep -v '(Database|information_schema|mysql)'`;
 do	
   # Création du répertoire de backup local pour chaque base
   MSG=`mkdir -p /vars/backups/$I 2>&1`;
   logger -t [SQLBACKUP] Create Backup Directory: $MSG;
 
   # Efface le backup de même jour de semaine éxistant déjà
   # On ne concerve donc que 7 jours glissant de backup en local
   MSG=`rm /var/backups/$I/$HOSTNAME.$DayInWeek.* 2>&1`;
   logger -t [SQLBACKUP] Clean Old Backup: $MSG;
 
   # Dump des bases présent sauf les exeptions, ceci en mode transactionnel, 
   # gzip du fichier sql au taux de compression le plus fort
   MSG=`mysqldump --single-transaction -p$MDP -u root $I | gzip -cq9 > \
 /var/backups/$I/$HOSTNAME.$DayNameDump.sql.gz 2>&1`;
   logger -t [SQLBACKUP] Mysqldump: $MSG;
 
   # Copie dans le bucket courant
   MSG=`s3cmd put /var/backups/$I/$HOSTNAME.$DayNameDump.sql.gz \
 s3://backup.perso.bucket./$I/$HOSTNAME.$DayNameDump.sql.gz 2>&1`;
   logger -t [SQLBACKUP] Put to S3 backup.perso.bucket: $MSG;
 
  done;

- page 1 de 4