hot backup data mysql

ViPHP
ViPHP | 1136 Messages

27 août 2009, 11:34

Salut à tous ,

Alors voilà ma question :

J'ai une base de données , assez importante ( pas en taille ).
Bref , il faut absolument que je me couvre en cas de panne de disque dur .

Première erreur de ma part : serveur dans raid :-(
Deuxiéme erreur de ma part , je n'ai qu'un serveur supplémentaire à dispo ( pas assez pour un cluster mysql ( si ? ) )
J'ai bien tenté une réplication , mais une panne de courant , à briser le lien des logs binaires , et pas moyen de restaurer .

J'ai donc pensé à plusieurs solutions plus ou moins barbares ..

- lien en dur des "data" sur un support amovible ( l'idée est bonne , mais n'étant pas la même partition , ext3 n'aime pas .. )
- rsync , ok mais ça lock les tables pendant le backup et il y a un délai entre chaque backup

Bref .. voilà ou j'en suis !

Avez vous des idées sur le sujet ?

Merci d'avance ,
Ch.

ViPHP
ViPHP | 4039 Messages

27 août 2009, 12:16

Si la taille n'est pas très grande, pourquoi pas un simple dump des db's dans des fichiers ? ça se fait à chaud et est bien plus facile à restaurer, j'ai l'impression.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 1136 Messages

27 août 2009, 12:21

Et bien , en gros , le probléme est le même qu'avec rsync , à savoir , il y a un délai entre chaque backup !

Si je fais un backup toutes les heures , en cas de panne , je perds jusqu'à 1heures de données !
La base sert entre autre à un suivi de production .. donc en cas de perte , c'est gênant , pas dramatique , mais gênant.

D'ou ma recherche d'une solution temps réel .

Eléphant du PHP | 217 Messages

27 août 2009, 12:55

Un petit truc à lire qui peut aller dans le sens de ta recherche :
Advanced MySQL Replication Techniques

Par contre il te faudra un mysql5.1 je crois.

ViPHP
ViPHP | 5924 Messages

27 août 2009, 14:48

- lien en dur des "data" sur un support amovible ( l'idée est bonne , mais n'étant pas la même partition , ext3 n'aime pas .. )
Vu que je n'ai pas étudié la réplication, je ne réagirais que sur ce point.
Conceptuellement, de toute façon, le lien en dur n'est possible qu'à l'intérieur d'une même partition, quelquesoit le fs. Le principe, c'est que deux fichiers logiques d'une table d'un système de fichiers auront la même adresse. Il n'y a aucune sauvegarde, aucune recopie, c'est simplement que les mêmes données, le même espace disque, seront accessibles via 2 adresses (2 fichiers) différentes.

ViPHP
ViPHP | 1136 Messages

27 août 2009, 14:57

Oui c'est pour ça que je voulais au départ faire un lien des data sur un disque amovible ..
Ainsi si le disque "crash" le disque amovible possède encore les données .

Mais le fait que ce ne soit pas la même partition .. c'est mort . :( ( mais je cherche un système similaire )

Quelle solutions utilisez vous de votre coté ?

Eléphant du PHP | 254 Messages

27 août 2009, 15:02

Salut

J'avais fait un système d'archivage de requêtes pour mieux tracer quel utilisateur avait fait quoi sur quelle table etc ... Pourquoi ne pas coupler le dump a intervalle régulier avec la création d'un fichier contenant toutes les requêtes depuis le dump en question jusqu'au crash ? Ce fichier ne contiendrais que les requêtes de modification ou d'ajout

ViPHP
ViPHP | 1136 Messages

27 août 2009, 15:18

Merci pour ton idée ,

mais celà ne me parait pas viable , lourd à mettre en place , et surtout , la restauration me parait complexe et peu précise .
On revient au même probléme que le dump ou rsync .. il y a délai entre chaque backup , et même si l'on enregistre les requêtes pendant ce laps de temps , il y a toujours un risque qu'à l'instant ou le backup se termine ou commence , des requêtes ne soient pas enregistrées .

Peut être que ce que je veux n'héxiste pas :-) ou s'appel simplement "cluster" . ( pour la réplication , je ne trouve pas ça assez "stable" ! ).

ViPHP
ViPHP | 5924 Messages

27 août 2009, 15:28

mais celà ne me parait pas viable , lourd à mettre en place , et surtout , la restauration me parait complexe et peu précise .
Et je pense que cela pourrait tuer les perfs.
Honnêtement, je ne pense pas qu'il y ai d'autre solution que les backups et la réplication.
Plus généralement, la "théorie" du backup, elle se base sur la durée maximale pendant laquelle tu supportes de perdre tes données et/ou ton service. C'est à dire que certains entreprises très critiques fixeront qu'elles ne doivent pas perdre plus d'une minute de données, ou que le service ne doit pas être rompu pendant plus de 10 minutes. Et d'autres fixeront un délai à la journée.

Mais, à moins d'y mettre plusieurs centaines de milliers d'euros (et encore), tu auras du mal à trouver une solution parfaite…

ViPHP
ViPHP | 1136 Messages

27 août 2009, 16:46

Ok ,

bon , merci à tous pour vos infos , je pense me tourner vers un cluster ( nécessitant l'achat d'une troisième machine ) qui me donnera la certitude d'une haute disponibilité . ( sauf en ca d'incendie ou de dégat des eaux évidemment #-o ) .

Cependant , si vous avez d'autres idées , je suis toujours preneur :-)

A bientôt ,

Ch.