Baza danych MySQL na wielu serwerach

11

Ok, naprawdę nie wiem jak zapytać o to, co chcę dowiedzieć się, co jest prawdopodobne, dlaczego moje czytanie i badania nie dają nic względnego na słowo. Tak więc obecnie posiadam pojedynczą bazę danych MySQL i wiem, że prędzej czy później dane będą się gromadzić i zabraknie mi miejsca na tym serwerze. Zanim to się stanie, chcę uporządkować dane, aby baza danych była rozproszona na wielu komputerach, z których jeden służy do równoważenia obciążenia, a drugi do przechowywania.

Moje pytanie brzmi: jak to działa? Być może myślę tutaj o 1 wymiarach, ale nie mogę zrozumieć, jak to by działało, czy jest to jeden DB, który przelewa się na następną maszynę, a następny w miarę wzrostu danych, czy też poszczególne DB z tymi samymi schematami dla każdego, tak czy inaczej, po prostu nie mogę sobie wyobrazić w mojej głowie, nie mówiąc już o logice, która pozwoli na sprawdzenie, nad czym obecnie pracujemy. Ponieważ nie chcemy uderzyć w ścianę i zatrzymać wszystko w przypadku, gdy dane są zbyt duże dla jednej maszyny.

Więc co muszę czytać, badać, metody, praktyki itp., Aby znaleźć się na właściwej drodze?

Chris
źródło
Pomogło mi to, że jestem nowy, jeśli chodzi o (moją) usługę sql obejmującą wiele komputerów. Miałem trochę trudności ze znalezieniem odpowiednich pytań, aby włamać się do tej przestrzeni. +1 zarówno pytanie, jak i odpowiedź. ;)
James T Snell

Odpowiedzi:

8

Rzeczywiście możesz, potrzebujesz klastrowania MySQL .

W szczególności jedna funkcja - „ automatyczne dzielenie ” - rozłoży twoje dane na wiele komputerów. „Skalowanie online” pozwala dodawać nowe węzły, jeśli potrzebujesz większej pojemności podczas działania bazy danych. Całkiem fajne. Możesz go pobrać tutaj .

Istnieje jednak kilka innych rzeczy, które możesz rozważyć, aby rozwiązać problem, które mogą być łatwiejsze do osiągnięcia:

Zdobądź większy dysk twardy!

Brzmi to trochę oczywisto, ale jeśli można śmiało powiedzieć, że dysk twardy xxxGb przetrwałby Y lata, może warto. Możesz albo zrobić zdjęcie dysku i zainstalować go na nowym, albo zainstalować jako dodatkowy dysk i przenieść pliki danych MySQL na nowy dysk. <

Podziel tabele na wiele baz danych.

Podziel tabele na wiele baz danych, które można następnie przechowywać na wielu dyskach. Windows Azure ma ograniczenia wielkości baz danych i Microsoft zaleca to podejście. To także trochę poprawia wydajność.

Czy możesz zarchiwizować dane?

Czy jesteś w stanie zarchiwizować duże tabele na innym dysku? Czy dane są naprawdę potrzebne? Jeśli jest to historyczne i wymagane tylko w celach informacyjnych, czy możesz skonfigurować proces archiwizacji, który wypycha go do plików na innym dysku lub do tabel archiwów w innej bazie danych, która wskazuje na pliki danych na innym dysku?

greg84
źródło
Ma to być system produkcyjny, w którym tak, z czasem można wykonać pewną archiwizację, ale ogólnie oczekiwane dane, które będą regularnie przywoływane przez garść tabel, będą z łatwością wynosić kilka terabajtów. Wszystko, co nieco pomaga Clustering, muszę bardzo mocno przeczytać temat, dzięki. Większy HD jest jednak niestety dostępny, ponieważ wiele danych o jednym punkcie awarii jest dla mnie wielkim ryzykiem.
Chris