2009-10-23 11 views
18

Wiem, że poziomy podział na partycje ... można utworzyć wiele tabel.Jak podzielić Mysql na wiele serwerów?

Jak to zrobić w przypadku wielu serwerów? Pozwoli to MySQL na skalowanie.

Tworzenie tabel X na serwerach X?

Czy ktoś chce wyjaśnić, czy ma dobry samouczek dla początkujących (krok po kroku), który uczy, jak dzielić się na wiele serwerów?

+2

Byłoby miło, gdyby ludzie zostawili komentarz, gdy trafią "blisko". IMHO, to pytanie jest więcej niż odpowiednie dla Stackoverlow. – Till

Odpowiedz

23

Z MySQL, ludzie zwykle robią to, co jest nazywane oparte na aplikacji odłamywanie.

W skrócie, będziesz mieć tę samą bazę danych strukturę na wielu serwerach baz danych. Ale nie będzie zawierał tych samych danych.

Tak na przykład:

Users 1 - 10000: server A 
Users 10001 - 20000: server B 

Sharding (oczywiście) nie jest techniką tworzenia kopii zapasowych, to znaczy rozpowszechnianie odczytuje i zapisuje w klastrze.

Technikami stosowanymi do odłamu są na przykład MySQL-Proxy. To nie jest nic, co wymyślił HScale, jest to mniej więcej prosty skrypt LUA, który dystrybuuje odczyty i zapisy na różne serwery zaplecza. Na kuźni MySQL powinno być mnóstwo przykładów.

Innym narzędziem (opartym na serwerze proxy MySQL) jest SpockProxy. Całkowicie skrojony na strzępy. Pozbyli się także Lua i pracowali nad różnymi rzeczami, aby uczynić ją szybszą niż proxy. Do tej pory testowałem tylko SpockProxy, ale nigdy nie uruchomiłem go w produkcji.

Oprócz tych pełnomocników, możesz także odstąpić od siebie. Wymagany będzie stół główny, np .:

------------------- 
| userA | server1 | 
| userB | server2 | 
| userC | server1 | 
------------------- 

Następnie skonstruuj swoje odczyty i zapisze w kierunku serwera. Niezbyt ładne, ale działa. Następnym utrudnieniem byłoby uczynienie go bardziej falt tolarant. Na przykład: , server2 i server3, każdy powinien być małą grupą.

Kolejnym interesującym podejściem do danych i indeksów partycji na serwerach jest Digg's IDDB.Nie jestem pewien, czy kiedykolwiek wydali swój kod, ale ich wpisy na blogu zawierają szczegółowe informacje na temat tego, co robi.

Daj mi znać, jeśli to pomoże!

0

Oto co jest napisane u zapowiedź HSCALE 0,1:

Teraz musimy po prostu podzielić się ogromne stoły ale później chcemy rozpowszechniać partycje na wielu instancje serwera MySQL mieć realny w skali poziomej. Najtrudniej będzie mieć do czynienia z transakcjami gdzie mamy do wykorzystania rozproszonych transakcji (XA) lub zabronić transakcje z udziałem partycji na różnych hostach ...

Wystarczy popatrzeć na tym projekcie: http://sourceforge.net/projects/hscale/ może go będzie dla ciebie odpowiedni.

4

Należy jednak pamiętać, że jeśli z jakiegoś powodu chcesz skorzystać z tego rozwiązania w chmurze i uczynić go multiemianą, powyższa konfiguracja może stać się trudniejsza. Pomyśl o tym -

  1. jesteś zalogowany do systemu i DB zostanie wybrany (DB-swap) na podstawie przez użytkownika tabeli organizacji
  2. Byłoby nową tabelę z którą rozmawiasz teraz z jego własnym mistrzem niewolnicy
  3. Ale punkt 2 powyżej również wymaga odtrutki, ponieważ chcesz się upewnić, że skalowanie nie stanie się wąskim gardłem.

Teraz pytanie brzmi, że prawdopodobnie będziesz musiał pomyśleć, w jaki sposób możesz dokonać tego odłamywania w typie niewolników-mstów, gdzie niewolnicy zazwyczaj czytają i piszą.

Pozdrawiam! Gary

Powiązane problemy