|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 5 ![]() |
Bonsoir,
Je suis nouveau parmi vous et également avec mysql. Je suis sous debian squeeze avec mysql 5.1.49, j'utilise une base de données avec deux tables en mémoire (pour des raisons de performance io disk). Cependant, j'ai un gros problème lors de l'arrêt de mysql, car comme vous vous en doutez, les données présentes dans ces deux tables sont perdues. Ma question est donc : est-il possible de sauvegarder ces données de ces deux tables dans la base lors de l'arrêt de mysql et dans ce cas-là comment le faire ? Merci d'avance pour votre aide |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Que je sache, ces tables sont supprimées par MySQL, non pas à l'arrêt du serveur, mais à la fin d'une session de connexion.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 5 ![]() |
Je pensais pourtant que c'était à l'arrêt, pour être plus excat, c'est un usage pour cacti, ces deux tables sont "vidées" dans la base toutes les heures, cependant si après ce "vidage" en base, j'attends un peu moins d'une heure, je perds toutes les données en arrêtant mysql, il en est de même bien sûr si j'attends moins longtemps.
Une solution à laquelle j'avais pensé et bien sûr un dump dans la procédure d'arrêt, puis une restauration au redémarrage, mais il y a probablement plus simple et moins lourd, peut être un changement de type de ces deux tables en innodb par exemple avant l'arrêt de mysql, puis un rechangement de type en memory après le redémarrage. Qu'en pensez-vous ? |
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Dans la documentation, on peut lire ceci :
Citation:
Peut-être en passant par des solutions de réplication... Mais là, je ne connais pas assez MySQL...
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 5 ![]() |
Si, il est tout à fait possible de convertir ces deux tables en innodb, cependant, comme je l'ai indiqué, pour des raisons de performances, le fonctionnement de ces deux tables en mémoire est préférable.
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Citation:
Par contre tu peux avoir une table de dump InnoDB qui serait chargée par INSERT avant l'arrêt du serveur des lignes de la table MEMORY, puis au redémarrage du serveur, après création de la table MEMORY, il faudrait la charger par INSERT à partir de la table InnoDB, laquelle serait ensuite vidée par TRUNCATE.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : avril 2009 Messages : 331 ![]() |
Pour sauvegarder tes données, je te conseille de modifier ton script d'arrêt (ou d'en développer un) pour décharger tes tables MEMORY dans un fichier.
Pour recharger tes données, c'est plus simple, tu n'as qu'à renseigner la variable init_file dans ton fichier de paramètres my.cnf (.ini). |
|
|
00
|
|
|
#8 | ||
|
Membre éclairé
![]() Inscription : avril 2009 Messages : 331 ![]() |
Maljuna Kris, Ced
Un petit exemple vaut mieux qu'un long discours : Code :
|
||
|
|
10
|
|
|
#9 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Effectivement... La traduction de la documentation en français est pour le moins ambiguë sur ce point.
Merci
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 5 ![]() |
Bonjour,
Merci pour vos réponses, je viens de tester en modifiant mon script stop/start pour y inclure un "simple" ALTER TABLE et cela à l'air de fonctionner. Merci beaucoup à vous tous. |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Problème
?
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 5 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com