FAQ |
Kalender |
2013-04-14, 17:56 | #1 | |||
|
||||
Flitig postare
|
Jag har fått i uppdrag att utöka vår MySQL infrastruktur för företaget jag jobbar på, och är ute efter lite tips från er andra som har varit i samma situation.
Det jag är ute efter är hur ni har satt up eran infrastruktur för MySQL så att det inte finns en enda singel point of failure. Det ska gå att göra reads och writes oavsett om en Master eller Slave går ner. Det är väldigt lätt att utöka antalet slaves i klustret, men det som jag har problem att lösa är om mastern går ner. Då kommer det inte gå att göra några writes, utan bara reads. Hur har ni löst detta? Jag har kollat en del på MySQL-MMM, men vet inte om det är lösning. Som jag har förstått det skapar Master-Master replikation mer problem än vad det är värt, så MySQL-MMM verkar lösa det på ett bra sätt genom att endast ha en aktiv Master. Jag har också kollat en del på https://github.com/mrkamel/heartbeat om det kan vara någon lösning att ha en Failover IP adress som ändras, men känns inte riktigt som att det är rätt lösning. Jag är öppen för alla förslag som ni kan komma med. Tack, David |
|||
Svara med citat |
2013-04-14, 18:31 | #2 | |||
|
||||
Mycket flitig postare
|
Master/Master-replikering är lite speciellt. Om du behöver fråga här så rekommenderar jag det inte.
Kör vanlig master/slave-replikering. Har du flera slavar så kör gärna en lastbalanserare för dom. Skicka alla skriv till master.mindomän.se och all läsfrågor till slaves.mindomän.se När mastern går ner, kör ex keepalived för att flytta master IP till en slav (dvsa gör den till master). Börja inte använda den gamla mastern igen, innan du har synkat upp den med nya mastern. |
|||
Svara med citat |
2013-04-14, 19:31 | #3 | ||
|
|||
Administratör
|
MM replikering skapar mer problem än vad det är värt ja. Kör hellre MS och låt slaven ta över IP:et och ändra sin roll.
Galera replikering kan också vara värt att titta på. I ett Galera-kluster kan du skriva till alla servrar men du har lite (inte alls så mycket som man kan tro) overhead för en skrivning.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
Svara med citat |
2013-04-14, 21:35 | #4 | ||
|
|||
Klarade millennium-buggen
|
Galera är enda vettiga om du tänker köra MASTER/MASTER, men tror det finns lite mer alternativ nu som kostar pengar nu när Oracle äger det.
Men om du vill ha en riktigt enterprise databas som ska funka i alla väder får du kolla på Oracle, dock tveksamt om din data ens är värd så mycket som deras databas kostar |
||
Svara med citat |
2013-04-14, 22:14 | #5 | ||
|
|||
Medlem
|
Ni har inte kollat på tex Perconas lösning? Tex http://www.percona.com/software/percona-xtradb-cluster då får man Galera "på köpet"
|
||
Svara med citat |
2013-04-15, 09:26 | #6 | |||
|
||||
Har WN som tidsfördriv
|
Annars kan du ta en titt på MySQL NDB Cluster.
Det har jag kört och jag tycker det fungerar väldigt bra. |
|||
Svara med citat |
2013-04-15, 10:28 | #7 | |||
|
||||
Flitig postare
|
Tack för alla svar! Ni har gett mig mycket att fundera över, och här kommer några av de funderingar:
Ett problem som finns är att vi kör MyISAM. Anledningen till att jag valde MyISAM i början är att jag visste att det kommer främst vara selects på servern. I dagsläget har vi cirka 85% selects, 8% update och 5% inserts. De flesta klustrerna kräver att man kör InnoDB om jag inte misstar mig. Skulle prestandan påverkas mycket om jag konverterade datan till InnoDB? Kan man flytta floating IPs runt på servrar om dem inte finns i samma subnet? Jag har nämligen tänkt hyra servrar i olika datacenter. Anledningen till att vi vill ha en HA infrastruktur är för att se till att vi inte har någon nertid. Prestandan är i dagsläget inget problem. Vi har cirka 13 queries / sekund. Hur fungerar Galera, MySQL NDB Cluster och Percona XtraDB cluster när servrarna är i olika data center? Om det inte är att rekommendera, har ni något förslag på hur jag kan sätta upp servrar-infrastrukturen så att tjänsten fortfarande är tillgänglig om ett DC kraschar. Alternativt om ni kan rekommendera någon leverantör som är seperata elkällor och internetleverantörer för olika avdelningar i datacentret. Senast redigerad av captaindoe den 2013-04-15 klockan 10:34 |
|||
Svara med citat |
2013-04-15, 11:12 | #8 | ||
|
|||
Administratör
|
Citat:
Med din query-fördelning skulle jag rekommendera dig att byta till InnoDB oavsett. När antalet frågor stiger finns det stor risk att du får låsningsproblem annars. Det finns verktyg för att spela upp dina egna queries mot en ny instans, t ex pt-query-digest där du får performance metrics via samma verktyg, riktigt smidigt. Notera dock att med InnoDB så är det viktigt att ha en varm server när du påbörjar dina mätningar. Bästa sättet att göra det representativt är att köra en replay på en timmes loggar utan att kolla metrics, för att sedan köra nästa timmes loggar med mätning.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
Svara med citat |
2013-04-16, 22:20 | #9 | |||
|
||||
Flitig postare
|
Tack för alla tips. Jag tar och undersöker lite mera innan jag tar det slutgiltiga beslutet. I dagsläget lutar jag mot Galera replikerings-hållet. Är det några stora nackdelar med Galera som kan vara värt att veta?
|
|||
Svara med citat |
Svara |
|
|