Kom ihåg mig?
Home Menu

Menu


Redundans i MySQL

Ämnesverktyg Visningsalternativ
Oläst 2005-11-04, 14:40 #1
paulie paulie är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2005
Inlägg: 8
paulie paulie är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2005
Inlägg: 8
Jag ska sätta upp 2 redundanta MySQL servrar. Initialt kommer endast en server användas åt gången och den andra kommer mera att agera backup, eventuellt kan båda komma att användas parallellt i framtiden. Lösningen är alltså inte till för lastbalansering eller för att höja prestanda. Det är mer en från om en ”high availibility” lösning.
De 2 servrarna kör Windows 2000 med MySQL 5.0. Att byta till Linux/Solaris eller annan Unix dialekt är i dagsläget tyvärr inte möjligt.

Jag började med att titta på klustring, men insåg att det inte finns stöd för Windows i nuvarande version.

Nästa steg var replikering. Jag insåg dock att replikering i MySQL är en ”envägs replikering”, dvs att den som agerar "slave" får data från den som agerar ”master”.
Detta skulle vara ohållbart i ett scenario där ”master” servern går ner och data skrivs till ”slave” servern. Då detta data inte kommer replikeras tillbaka till master servern.

Ett tredje alternativ vore väl antagligen att ha någon form av delad lagring som GFS eller DRDB i linux. Jag vet dock inte vad det finns för liknande möjligheter i Windows.

Några förslag på vad som skulle vara ett lämpligt sätt att lösa problemet?
paulie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-05, 07:55 #2
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Originally posted by paulie@Nov 4 2005, 15:40
Jag ska sätta upp 2 redundanta MySQL servrar. Initialt kommer endast en server användas åt gången och den andra kommer mera att agera backup, eventuellt kan båda komma att användas parallellt i framtiden. Lösningen är alltså inte till för lastbalansering eller för att höja prestanda. Det är mer en från om en ”high availibility” lösning.
De 2 servrarna kör Windows 2000 med MySQL 5.0. Att byta till Linux/Solaris eller annan Unix dialekt är i dagsläget tyvärr inte möjligt.

Jag började med att titta på klustring, men insåg att det inte finns stöd för Windows i nuvarande version.

Nästa steg var replikering. Jag insåg dock att replikering i MySQL är en ”envägs replikering”, dvs att den som agerar "slave" får data från den som agerar ”master”.
Detta skulle vara ohållbart i ett scenario där ”master” servern går ner och data skrivs till ”slave” servern. Då detta data inte kommer replikeras tillbaka till master servern.

Ett tredje alternativ vore väl antagligen att ha någon form av delad lagring som GFS eller DRDB i linux. Jag vet dock inte vad det finns för liknande möjligheter i Windows.

Några förslag på vad som skulle vara ett lämpligt sätt att lösa problemet?
Jag satt i samma sits som du, där en plan för sånt skulle tas fram.

För klustring av mysql, behöver du minst 3 maskiner. Egentligen helst 4. En maskin agerar "controller" och därför är det bra att ha dubbla controllers för bra redundans. 2 andra maskiner agerar lagringsnoder.

Tyvärr drar det i omkostnader ifall man har det på det viset.

Så billigare alternativet är replikering. Min plan var att ha en kontrolerad failover i klustret (jag pratar om totala systemet nu inte mysql). Om nod A går ner, eller webbservern dör, eller något händer för att nod B ska ta över uppdraget. Då tas maskin A ner. När mysql på maskin A är dött, konfigureras mysql-slaven på B att bli Master. Det är i princip ett eller två sql-kommandon. Allt är fint hittils.

När maskin A är uppe igen, innan failover systemet återställer dennes IP och redigerar trafiken till den, följande görs i Mysql först. Konfigurera Mysql som slave till nod B. All synkning sker från B till A. När det är klart, konfigurera A som master igen och B som slave till A.

Problemet med det är att det kräver något så när avancerad skriptning och möjlighet att fördröja tillbaka-failover något. I Windows är sånt alltid svårare men jag antar att Cygwin hjälper lite.
zoran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-05, 21:00 #3
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
Svårare i Windows? Nä det beror väl på vad man är van vid. Hehe.

Jag var också ute efter nån slags redundans men jag gav upp och kör vanlig slav-historia. Det viktiga är för mig att inte tappa data. Ny hårdvara hos i en bra serverhall gör väl att jag ska slippa "restaurera" systemet alltför ofta.
Westman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-06, 09:56 #4
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Citat:
Originally posted by Westman@Nov 5 2005, 21:00
Svårare i Windows? Nä det beror väl på vad man är van vid. Hehe.

Jag var också ute efter nån slags redundans men jag gav upp och kör vanlig slav-historia. Det viktiga är för mig att inte tappa data. Ny hårdvara hos i en bra serverhall gör väl att jag ska slippa "restaurera" systemet alltför ofta.
Han är förmodligen van med ett vettigt OS helt enkelt. Klart det är svårare i Windows.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-06, 17:22 #5
paulie paulie är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2005
Inlägg: 8
paulie paulie är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2005
Inlägg: 8
Jag tror Replikering är tillräckligt i mitt fall. Jag har tittat närmare på båda varianterna men det tycks inte äns gå att implemetera i Windows.
Jag satte upp två noder som agerade både slave och master. Och på så sätt få en 2 vägs replikering. Jag är inte riktigt hundra på den här lösningen dock, då mysql direkt fördömmer den.
Men i mitt fall tänkte jag inte tilllåta skrivning till båda noderna samtidigt och hoppas att det ska vara okej då.
Om någon har synpunkter på det så skulle jag gärna höra dessa.

Jag är också mer van vid linux än windows när det gäller server hantering och undrar vad det finns för HA lösningar till windows som tillexempelt Failover IP mm.
Som jag har förstått det behöver man Windows Advanced Server för att kunna köra Microsoft Cluster Server, vilket är väldigt dyrt.
Finns det billigare lösningar eller bra open source lösningar?
paulie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-06, 20:15 #6
Axe Axe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 162
Axe Axe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 162
I Linux finns det MON + Heartbeat som du kan använda. Jag skapade en HA-lösning liknande den som Zoran beskriver, men med två servrar. Du borde kunna skapa en linande med cygwin om programvarorna finns portade.
Axe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-07, 07:28 #7
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Originally posted by Westman@Nov 5 2005, 22:00
Svårare i Windows? Nä det beror väl på vad man är van vid. Hehe.

Jag var också ute efter nån slags redundans men jag gav upp och kör vanlig slav-historia. Det viktiga är för mig att inte tappa data. Ny hårdvara hos i en bra serverhall gör väl att jag ska slippa "restaurera" systemet alltför ofta.
Nja, det beror inte på vad man är van vid. I windows finns en anda av att API för vissa operationer inte behöver blottas för användare. Det innebär att det är svårt att göra anpassningar till befintlig programvara. Skriptning med .bat-skript kan knappast kallas för skriptning. I så fall måste du använda cygwin. Men fortfarande blir det svårt att från cygwin kontrollera ett proprietärt failoversystem.

När det kommer till linux är det genast mycket lättare. Programmen integrerar med systemet på helt annat sätt, och det är lättare att göra anpassningar och få programmen att bete sig annorlunda.

Just i mitt fall handlar det om att fördröja tillbaka-failover tills synkningen av mysql är klar.
zoran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-07, 17:07 #8
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
zoran: Jag tänkte mer på att programmera en egen service, inte använda bat-filer, därav vana. Nåväl, jag kör inte MySQL på windows då linux i mitt fall är snabbare och billigare.

EDIT: stavfel
Westman är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 12:20.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017