Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2007, 02h30   #1
Membre actif
 
Inscription : juin 2005
Messages : 303
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 303
Points : 150
Points : 150
Par défaut Augmenter le taille de ma BD MySQL

Bonjour,

Je voudrais savoir comment augmenter la taille de ma base de données. Sachant qu'elle est de type innoDB et que le fichier ibdata1 fait toujours 18Mo que j'insers des données ou que je les supprime.

Il y a surement une facon de faire, j'ai cherché et je n'ai pas trouvé. merci
khokho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2007, 10h15   #2
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Ce fichier est défini par 'innodb_data_file_path' dans la configuration de MySQL. Par défaut il doit être marqué comme 'autoextend' donc pousser (mais pas diminuer !) au fur et à mesure que l'on ajoute des données dans la base. Sans 'autoextend' sa taille est fixe et si on la dépasse les insertions seront refusées.

Si en ajoutant des données sa taille n'augmente pas c'est soit que sa position a été changée (et que ce n'est plus ibdata1, ou qu'il y a deux fichiers et que le premier est plein) soit que les données insérées ne dépassent pas sa capacité actuelle : pour dépasser 18M il faut déjà un paquet de données.

"show table status" doit donner la capacité restante. A noter que changer la taille du fichier avec 'innodb_data_file_path' est délicat car il me semble que ça oblige à le supprimer.
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2007, 10h20   #3
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Plus d'info ici : http://dev.mysql.com/doc/refman/5.0/...iguration.html
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2007, 21h14   #4
Membre actif
 
Inscription : juin 2005
Messages : 303
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 303
Points : 150
Points : 150
quand je modifie le fichier my.ini, ca fusille completement la base de données. et je dois réinstaller MySql. Ce que j'ai reussi à modifier c'est tmp_table_size mais je ne sais pas si ca à kkchose à voir.
En fait j'utilise MySql5 et je configure grace à mysql administrator. Mais ce dernier ne donne pas le choix pour modifier la taille de mon ibdata1
khokho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 09h43   #5
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Citation:
Envoyé par khokho
quand je modifie le fichier my.ini, ca fusille completement la base de données. et je dois réinstaller MySql. Ce que j'ai reussi à modifier c'est tmp_table_size mais je ne sais pas si ca à kkchose à voir.
Pour tmp_table_size non. innodb_data_file_path est un paramètre très sensible. Y toucher c'est avoir de bonnes chances de devoir supprimer le fichier existant et (je dis ça en gros et à la louche) de redémarrer deux fois MySQL
Réinstaller est surfait. Au pire remettre l'ancien fichier devrait suffire (voire restaurer le répertoire DATA si on y a fait des trucs à la main que l'on regrette).

Citation:
Envoyé par khokho
En fait j'utilise MySql5 et je configure grace à mysql administrator. Mais ce dernier ne donne pas le choix pour modifier la taille de mon ibdata1
Normal, il ne permet pas de toucher au fichier de configuration. S'il modifie un paramètre qui y figure, la modification disparaitra au prochain redémarrage et ça ne concerne que ce qui peut être changé en live. Pour innodb_data_file_path ce n'est pas la peine.


A part ça, pourquoi vouloir le modifier ? La valeur de base doit convenir pour bien des cas.
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 12h07   #6
Membre actif
 
Inscription : juin 2005
Messages : 303
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 303
Points : 150
Points : 150
Pourquoi vouloir le modifier? parceque c'est la BD d'un nouveau moteur de recherche d'emploi, et donc je pense que 18Mo c'est bien maigre. Non?

tu as dis "Pour tmp_table_size non", c'est à dire que ce n'est pas ca qui va changer la taille de ma BD. C'est bien ca?

tu as dis aussi
Code :
1
2
 
supprimer le fichier existant et (je dis ça en gros et à la louche) de redémarrer deux fois MySQL
tu parle du fichier my.ini ou de ibdata1 ?
En fait, quand je touche à my.ini c'est le service MySql qui plante.

voila voila

Merci
khokho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 12h57   #7
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Citation:
Envoyé par khokho
Pourquoi vouloir le modifier? parceque c'est la BD d'un nouveau moteur de recherche d'emploi, et donc je pense que 18Mo c'est bien maigre. Non?
C'est peu mais il peut grandir donc la configuration d'origine (10Mo extensibles, ce qui laisse penser qu'avec ses 18Mo le fichier a déjà été aumenté une fois) peut tout à fait convenir. Eventuellement ajouter "innodb_autoextend_increment=100M" par exemple pourrait être utile et éviter les difficultés.
Citation:
Envoyé par khokho
tu as dis "Pour tmp_table_size non", c'est à dire que ce n'est pas ca qui va changer la taille de ma BD. C'est bien ca?
tmp_table_size est la taille maximale que peut atteindre une table temporaire avant d'être déchargée sur le disque.
Citation:
Envoyé par khokho
tu parle du fichier my.ini ou de ibdata1 ?
ibdata1. Après quelques essais il faut supprimer les 'ibdata' et les 'ib_logfile' avant de redémarrer et ça marche du premier coup. Il faut aussi ne pas avoir de table innodb déjà définie (sinon il faut les supprimer ou carément effacer les répertoires correspondant ce qui n'est pas très beau).
Citation:
Envoyé par khokho
En fait, quand je touche à my.ini c'est le service MySql qui plante.
Normal, la taille du fichier ibdata1 est en contradiction avec ce qu'il trouve dans sa configuration, et il peut aussi y avoir incohérence avec les fichiers de log.
Il peut être intéressant de regarder le log des erreurs quand le service ne démarre pas. Ca permet de voire s'il y a une faute de frappe dans le fichier de configuration ou un problème plus grave.
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 13h54   #8
Membre actif
 
Inscription : juin 2005
Messages : 303
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 303
Points : 150
Points : 150
ah, donc c la commande "innodb_autoextend_increment=100M" qu'il faut mettre et non "innodb_data_file_path:ibdata1:autoextend".

Enfin, je pense que les 2 sont valides. La première etend tous les innodb et la 2ème uniquement celle qu'ont spécifie.

Enfin, je pense que c'est ca

En tous cas, merci pour ton aide. je verais ca se soir et je te tiens au courant
khokho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 14h14   #9
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
'autoextend' indique que le fichier peut grandir, 'innodb_autoextend_increment' la taille des incréments.

Par défaut il me semble que l'on a :
Code :
1
2
innodb_data_file_path=ibdata1:10M:autoextend
innodb_autoextend_increment=8M
('innodb_autoextend_increment' vaut 8M par défaut mais n'est pas de base précisé dans le fichier)

Augmenter 'innodb_autoextend_increment' peut améliorer la situation sans remettre en cause le fichier existant. Sinon il est possible de carément mettre quelquechose comme :
Code :
1
2
3
 
innodb_data_file_path=ibdata1:2G;ibdata2:1G:autoextend
innodb_autoextend_increment=200M
mais c'est un peu extrème pour un gain indéterminé.
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 12h23   #10
Membre actif
 
Inscription : juin 2005
Messages : 303
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 303
Points : 150
Points : 150
c'est bon c'est fait.

Voilà comment j'ai procédé:
Avant de toucher au fichier my.ini, j'ai fais un backup de mon actuelle BD.
j'ai supprimer les bd innodb, j'ai supprimé les iblogfile. j'ai modifié my.ini, j'ai créé une bd innodb bidon et j'ai restoré le backup et c'était bon, j'ai retrouvé ma bd

Maintenant j'ai une autre interrogation, qu'est ce qu'il y a à configurer dans MySql pour qu'il supporte un très grand nombre de requetes et qu'il supporte aussi les grosses requêtes?

En tous cas merci bcp pour ton aide. J'en ai tjs besoin d'ailleurs

Encore merci
khokho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 14h35   #11
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Pour ce qui est de tuner le serveur c'est un vaste sujet. Ca dépend de beaucoup de choses (application, trafique, structure de la base, hardware du serveur...)

S'il fallait ne retenir qu'une chose pour innobd ce serait probablement l'option "innodb_buffer_pool_size" à pourvoir généreusement. Et bien veiller à indexer ses tables car toutes les options de configuration ne pourront remplacer une bonne indexation.

Sinon mysql arrive avec plusieurs fichiers de configuration "types" en fonction de la taille du harware disponible. Il y a dans la doc officielle une partie sur le tuning et donnera de très nombreuses pages sur le sujet (http://www.mysqlperformanceblog.com/ par exemple).

Bonne chance
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 17h07   #12
Membre actif
 
Inscription : juin 2005
Messages : 303
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 303
Points : 150
Points : 150
alors le site est un moteur de recherche d'emploi. L'application est une appli J2EE avec Tomcat, JBoss et MySql.
Le traffic, on table sur quelque chose comme 10.000 connexions/jours dans 6mois. Donc un trafic très important.
Le serveur est un Pentium Dual core 3G avec 2 Go de RAM et 160 Go de Dur.
khokho est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h51.


 
 
 
 
Partenaires

Hébergement Web