Toon posts:

[MySQL] Ervaringen met database replicatie?

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Een goedenavond,

Ik ben momenteel bezig aan een intranet gebaseerd op PHP, MySQL en nog wat Java applets die ook de DB raadplegen. Dit intranet moet wereldwijd benaderbaar zijn via ons VPN, maar door de beperkte bandbreedte op verschillende locaties is het daar echt te langzaam.

Na wat google-en kwamen we uit bij de ingebouwde MySQL replicatie faciliteit. Ik heb er even snel doorheen gekeken en dit is volgens mij precies de oplossing die we nodig hebben. Alleen heb ik nog een paar vraagjes m.b.t. de onderhoudbaarheid van een dergelijke replicatie setup met MySQL.

1) Is het mogelijk om de slave alleen op bepaalde tijdstippen te laten repliceren of worden updates in de master database direct doorgeseind aan de slave?

2) Is het proces van het opstarten van een slave MySQL server te automatiseren? Tot nu toe heb ik alleen gezien dat ze via de 'MySQL console' de slave opstartten met het commando START SLAVE. Het zou een stuk professioneler zijn als we de slave ook gewoon als Windows service kunnen laten draaien, zonder dat er handmatig iets moet worden opgestart.

3) Heeft iemand ervaring met eventuele problemen met de consistentie van de gegevens door een crash van de master of de slave? Dit is mijn grootste zorg. Snelheid is belangrijk, maar de consistentie van de gegevens is natuurlijk nog veel belangrijker.

4) Kunnen replicatie slaves ook eventueel gebruikt worden als fail-over server in een soort cluster setup, of wordt het dan hopeloos ingewikkeld?


Als iemand wellicht een ander alternatief weet voor het repliceren van MySQL data, dan hoor ik het natuurlijk graag :)

  • SyphOn
  • Registratie: Juni 2001
  • Laatst online: 23-05 12:40
http://mysqlforgrid.sourceforge.net/

met deze tool daarvoor kan je wat dingen instellen kijk er even na ik weet niet of dit is wat je zoekt...

Verwijderd

Topicstarter
Dat ziet er meer uit als een managment tool, om te kijken of alle masters/slaves nog in sync zijn en om alles een beetje te monitoren. Als ik het goed begrijp tenminste :)

We hebben in principe maar 1 master en 2 slaves nodig, 1 master voor EMEA en 2 slaves voor Amerika en Azie, dus ik denk dat we zo'n management tool (nog) niet nodig zullen hebben. Msschien is het wel handig om te checken of het allemaal een beetje goed werkt, dus in ieder geval bedankt.

Maar ik zou graag horen van mensen die al ervaringen hebben opgedaan met MySQL replicatie. Waar het eigenlijk op neer komt is de vraag of het al een volwassen techniek is, of dat het allemaal nog een beetje 'houtje-touwtje' in elkaar zit. Het moet natuurlijk wel een beetje degelijk oplossing zijn. Als ik lees dat de slave van het binair log van de master afhankelijk is, dan vind ik dat niet bepaald vertrouwenswekkend.

Verder ben in nog altijd geinteresseerd in eventuele alternatieven. Met onze bescheiden setup is er wellicht nog een andere, eenvoudigere mogelijkheid om de data van de ene MySQL server naar de andere te krijgen.

In principe is 1 replicatie per etmaal voldoende voor dit project, dus voordat ik over MySQL replicatie las was ik aan het denken om gewoon 's nachts via een programmaatje/service beide MySQL servers te stoppen (of eventueel de DB's te locken & flushen) en dan de database files te kopieren. Dat lijkt me een stuk makkelijker (en om eerlijk te zijn ook een stuk robuster) dan dit hele replicatie gebeuren. Of is dit meer NIHS en kan ik toch het beste gewoon de replicatie gebruiken?


Alweer bedankt :)

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 22-05 16:28
Volgens mij hoort dit eerder in de SA

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23-05 14:53
Even kort:
-crashende slaves zorgen niet direct voor beschadigde data. Bugs daargelaten uiteraard.
-synchroniseren wil je niet 1x per dag doen lijkt mij, waarom wel? Dan kloppen je gegevens toch niet?
-opstarten mag geen probleem zijn, eventueel zou je het met srvany kunnen doen maar volgens mij kan MySql dit zelf ook wel.

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 21:02

JaQ

Verwijderd schreef op 08 september 2004 @ 18:25:
1) Is het mogelijk om de slave alleen op bepaalde tijdstippen te laten repliceren of worden updates in de master database direct doorgeseind aan de slave?
Voor zover ik weet is alleen direct doorseinen mogelijk, tenzij je zelf een replicatie proces in elkaar fietst. Op zich geen probleem, zolang je tenminste wat netwerk tot je beschikking hebt.
Verwijderd schreef op 08 september 2004 @ 18:25:
2) Is het proces van het opstarten van een slave MySQL server te automatiseren? Tot nu toe heb ik alleen gezien dat ze via de 'MySQL console' de slave opstartten met het commando START SLAVE. Het zou een stuk professioneler zijn als we de slave ook gewoon als Windows service kunnen laten draaien, zonder dat er handmatig iets moet worden opgestart.
Je kan mbv de windows resource kit (of hoe die server add on ook heet) zelf services toevoegen. Het is natuurlijk relatief eenvoudig om nadat je server is opgestart een batje te laten starten die de mysql prompt aanroept en daar start slave tegen gilt mbv "<" (ja dat werkt ook onder dos)
Verwijderd schreef op 08 september 2004 @ 18:25:
3) Heeft iemand ervaring met eventuele problemen met de consistentie van de gegevens door een crash van de master of de slave? Dit is mijn grootste zorg. Snelheid is belangrijk, maar de consistentie van de gegevens is natuurlijk nog veel belangrijker.
Ja, ik heb wel problemen meegemaakt, maar de oorzaken waren dermate verschillend dat ik geen goed antwoord kan geven. In ieder geval niet meer problemen dan bij een andere database.
Verwijderd schreef op 08 september 2004 @ 18:25:
4) Kunnen replicatie slaves ook eventueel gebruikt worden als fail-over server in een soort cluster setup, of wordt het dan hopeloos ingewikkeld?
Ja dat kan, MAAR je wilt echt niet weten wat je jezelf dan op je nek haalt. Je hebt dan feitenlijk een master - master setup (denk aan update loops... )
Verwijderd schreef op 08 september 2004 @ 18:25:
Als iemand wellicht een ander alternatief weet voor het repliceren van MySQL data, dan hoor ik het natuurlijk graag :)
Als het niet zo belangrijk is om een real time koppeling te hebben is het dagelijks "dumpen" van de data en te importeren in je nieuwe database best een leuke optie. Relatief eenvoudig te scripten. Persoonlijk geniet dat mijn voorkeur boven het kopieren van datafiles, omdat je (met een handig database ontwerp) enkel de updates en toevoegingen hoeft te versturen.

Egoist: A person of low taste, more interested in themselves than in me


Verwijderd

Topicstarter
Bedankt voor de replies. Ik heb besloten toch maar een alternatief te kiezen in plaats van de MySQL replicatie, vooral omdat een periodieke replicatie voldoende is. We gaan hiervoor de SQLyog Job Agent gebruiken. Na enkele kleine aanpassingen aan de database structuur voldoet dit pakket perfect naar onze wensen.

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Mysql start zelf de slave, tenminste als dit in de config file zo staat ingesteld.

Als er enkele uren geen verbinding tussen de slave en de master is, dan is dat geen probleem.

Wij gebruiken replicatie met 3 mysql servers, verbonden als cirkel. (Over het internet, via ssh-tunnels. Die ssh tunnels geven er wel eens de brui aan en weigeren dan automatisch weer op te komen. Vandaar de ervaring met periodieke update :) ) Loops is geen probleem omdat elke server een eigen id heeft, en mysql dat dan allemaal netjes bijhoud.

Echter moet je er in geval van failover wel voor zorgen dat je MAXIMAAL 1 server gebruikt voor insert opdrachten. Anders loop je grote kans dubbel id's te krijgen, en dan stopt de boel. Daar moet je dan dus wel een controle voor maken.
Pagina: 1