Base de données MySQL sur plusieurs serveurs


11

Ok, je ne sais vraiment pas comment demander ce que je cherche pour savoir pourquoi ma lecture et mes recherches ne donnent rien de relatif. Donc, ce que j'ai actuellement, c'est une seule base de données MySQL, et je sais que tôt ou tard les données vont s'accumuler et je manquerai de place sur ce serveur. Donc, avant que cela ne se produise, je veux mettre les choses en ligne afin de pouvoir répartir la base de données sur plusieurs machines, une pour l'équilibrage de charge et deux pour le facteur de stockage pur.

Donc ma question est, comment ça marche? Peut-être que je pense aussi à 1 Dimensional ici, mais je ne peux pas comprendre comment cela fonctionnerait, est-ce une base de données qui déborde sur la machine suivante et la suivante à mesure que les données augmentent ou s'agit-il de bases de données individuelles avec le même schéma pour chacune, de toute façon, je ne peux pas imaginer dans ma tête et encore moins entrer dans une logique d'épreuvage futur sur laquelle on travaille actuellement. Comme nous ne voulons pas frapper le mur et faire un arrêt total dans le cas où les données sont juste trop pour une seule machine.

Alors, que dois-je lire, rechercher, méthodes, pratiques, etc. pour me mettre sur la bonne voie avec cela?


Cela m'a aidé, je suis un nouveau en ce qui concerne (mon) service SQL couvrant plusieurs machines. J'ai eu un peu de mal à trouver les bonnes questions à poser pour pénétrer dans cet espace. +1 à la fois à la question et à la réponse. ;)
James T Snell

Réponses:


8

Vous pouvez en effet, c'est le clustering MySQL dont vous avez besoin.

Une fonctionnalité en particulier - le " partage automatique " - répartira vos données sur plusieurs machines. La "mise à l'échelle en ligne" vous permet d'ajouter de nouveaux nœuds si vous avez besoin de plus de capacité pendant que la base de données est en cours d'exécution. Plutôt cool. Vous pouvez le télécharger ici .

Cependant, il existe quelques autres éléments que vous pouvez envisager pour résoudre le problème, qui peuvent être plus faciles à réaliser:

Obtenez un disque dur plus grand!

Cela semble un peu évident, mais si vous pouviez dire en toute sécurité qu'un disque dur de xxx Go durerait Y ans, cela pourrait valoir la peine. Vous pouvez soit prendre une image du lecteur et l'installer sur le nouveau, soit l'installer en tant que lecteur supplémentaire et déplacer les fichiers de données MySQL vers le nouveau lecteur. <

Répartissez les tables sur plusieurs bases de données.

Répartissez les tables sur plusieurs bases de données, qui peuvent ensuite être stockées sur plusieurs lecteurs. Windows Azure a des limitations de taille sur ses bases de données et Microsoft recommande cette approche. Il améliore également un peu les performances.

Pouvez-vous archiver des données?

Pouvez-vous archiver de grandes tables sur un autre lecteur? Les données sont-elles vraiment nécessaires? S'il est historique et uniquement requis pour référence, pouvez-vous mettre en place un processus d'archivage qui le pousse dans des fichiers sur un autre lecteur, ou dans des tables d'archives dans une autre base de données qui pointe vers des fichiers de données sur un autre lecteur?


Il s'agit d'un système de production, où oui, un certain archivage peut être effectué au fil du temps, mais en général, les données attendues qui seront régulièrement sollicitées par une poignée de tables vont facilement atteindre quelques téraoctets. Bien que le bit de clustering aide beaucoup, je dois faire une lecture difficile sur le sujet, merci. Malheureusement, le plus gros disque dur est sorti, autant de données sur un seul point de défaillance représentent un grand risque.
chris
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.