1. DIRECTION DES SYSTEMES
D’INFORMATION& DE L’ORGANISATION
SERVICE EXPLOITATION INFORMATIQUE
Nikolaus Meury
Fongecif Ile-de-France
24/01/2013
RAPPORT D’INCIDENT
Import de dump Dokelios
2. Table des matières
1 Contexte 2
1.1 Import du dump Kelios 2
1.2 Intégration Dump MySql 2
2 Contrôles 3
2.1 Version du SGDB MySQL 3
2.2 Transfert FTP et intégrité de l’archive 3
3. 1 Contexte
Afin d’alimenter certains champs de la base de données MS PROD, l’hébergeur de la solution Dokelios met à
disposition des dumps de base sur un serveur FTP. Ce dump est récupéré depuis le serveur DMZMYSQL situé en
zone DMZ privée via un script, le dump est ensuite remonté sur l’instance locale MySQL « Kelios-rec » sur le
serveur DMZMYSQL pour être poussée sur une instance de stockage temporaire MS PROD.
De façon ponctuelle l’import du dump dans l’instance Kelios-rec du serveur DMZMYSQL échoue, si la procédure
est relancée avec le même fichier de dump l’erreur retournée reste la même, même code erreur et même
ligne.
1.1 Import du dump Kelios
L’import du dump de la base Kelios est effectué via l’appel d’un script en tâche planifié tous les jours à minuit,
toutes les 10 minutes pendant 32 minutes.
Le script se trouve sur le serveur DMZEXTRASQL dans D:DumpMysqlImportDumpKelios.bat, il est exécuté via
le compte local administrateur.
La partie concernant l’import du dump est la suivante :
C:Program FilesWinSCPWinSCP.com" /script="D:DumpMysqlCopyDumpProd.txt" /log="D:LogWinSCPt.hartmann@93.187.40.43.log"
Le transfert se fait via une connexion ftp ouverte par WinSCP, IP du serveur Dokelios 89.31.147.192, port 2223,
utilisateur « accfif_dump », mot de passe « pijWujev1phi ». Pas d’anomalie constatée sur le transfert.
1.2 Intégration Dump MySql
Lancement de la tache planifiée tous les jours à 1h30 avec le compte local administrateur. Le script exécute le
script D:DumpMysqlenvoi_mail.bat. Ce script traite de nombreux points et fonction du résultat des
traitements génère des rapports et envoie des notifications par mails. Les commandes qui nous intéressent
pour le moment seront exclusivement les appels de commande SQL, on isole donc la partie extraction du dump
et on considérera que le fichier décompressé est intègre.
mysql -u %mysqluser% -p%mysqlpassword% %database% < %backupdir%%filenameout%
set Erreur=%ERRORLEVEL%
mysql -u %mysqluser% -p%mysqlpassword% %database% < "D:DumpMysqlupdate.sql"
DEL %backupdir%%filenameout%
4. 2 Contrôles
Afin d’isoler le problème d’import des dumps, différents points de contrôles seront effectués comme
l’environnement système, les versions des SGDB distant et local, les lignes de commandes et les arguments
utilisés pour l’import du dump, l’intégrité des fichiers de dump rapatriés en FTP.
2.1 Version du SGDB MySQL
Le SGDB MySQL de l’hébergeur Dokelio tourne en version 5.1. La version locale du SGDB MySQL du serveur
DMZMYSQL est 5.1.34.
2.2 Transfert FTP et intégrité de l’archive
Afin d’éliminer tout problème lié au transfert du dump via un client FTP (WinSCP), on observe les propriétés
fichier de la même archive téléchargée plusieurs fois. On effectue une comparaison binaire des deux fichiers via
la commande FC avec l’argument /B :
Le même dump télécharger une nouvelle fois ne présente pas de différence, il reproduira la même erreur à
l’import via le script sur la même ligne.
5. 2.3 Import manuel depuis le prompt
Vérification de la ligne de commande hors contexte de l’exécution du script avec plusieurs itérations.
On utilisera la ligne de commande suivante depuis le prompt
mysql -u root–pDmzMysq %database% < %backupdir%%filenameout%
set Erreur=%ERRORLEVEL%
mysql -u %mysqluser% -p%mysqlpassword% %database% < "D:DumpMysqlupdate.sql"
DEL %backupdir%%filenameout%
On constate la même erreur systématiquement, même code erreur et même ligne.
mysql -u root -pDmzMysqlkelios-rec< D:DumpMysqlAttenteKELIOS_DUMP_1.dmp --default-character-
set=utf8
mysql -u root –p k8sgg7rvtest<c:[tools]KeliosKELIOS_DUMP_1.dmp
2.4 Import depuis la console d’administration MySQL
Sans configuration préalable l’import du dump ne fonctionne pas, on s’arrête dès l’exécution de la commande
la console retournant une erreur de format de fichier, le dump n’étant pas reconnu comme un fichier SQL
valide. Il faudra utiliser l’option « ignorer les erreurs » dans la console pour pouvoir importer le dump.