[MySql] Drie servers synchroniseren

Pagina: 1
Acties:

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 21:26
Situatieschets:
Er zijn 3 mysql servers (verspreid over drie continenten). Op deze 3 locaties wordt dezelfde applicatie gebruikt. Nu moet het mogelijk worden dat vanuit nederland bijvoorbeeld ook de gegevens van amerika bekeken kunnen. Aangzien er niet zo'n snelle verbinding tussen ligt, is het niet wenselijk om elke request naar de andere kant van de wereld te sturen.
Ik zit dus te denken hoe ik die 3 servers kan synchroniseren, zodat de applicaties op alledrie de locaties gewoon de data uit de lokale databaseserver kunnen vissen (als de data iets achterloopt geeft dat niks).

Gezien mijn ervaring met MS SQL Server wilde ik dit aanvankelijk met replication op gaan lossen, maar de mogelijkheden van replication in MySql zijn "iets" beperkter (geen 2-weg replicatie mogelijk).

Zijn er hier mensen die zo'n situatie al eerder hebben meegemaakt? Of bij het lezen van bovenstaande een brainwave krijgen hoe dit op te lossen?

Roomba E5 te koop


  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 02-01 05:18

KompjoeFriek

Statsidioot

Misschien iets als op elke locatie 3 databases bij te houden. (bv NL, US, en die 3e.)
Laat om de 20 min. een van de 3 syncen. (zo dat ze dat niet steeds tegelijk doen)
De server in NL bewerkt zijn tabel(len) in de NL database lokaal, en daarna ook bij de andere 2 servers.
en 20 min. later begint de US server, met zijn US tabel lokaal, en daarna ook bij de andere 2 servers.
enz..

* KompjoeFriek gooit maar een balletje op.
misschien dat iets meer info over je db-structuur nodig is om een goed antwoord te bedenken :)

WhatPulse! - Rosetta@Home - Docking@Home


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 21:26
Eerlijk gezegd lijkt dit me niet echt een nette oplossing (maar toch bedankt voor het meedenken).

2 opties waar ik op dit moment aan zit te denken:
• Dubbele replicatie (circulaire replicatie)

Afbeeldingslocatie: http://www.davidjuffermans.nl/FileUpload/files/sync01b.png
Deze heb ik uit de MySQL manual. In principipe is dit mogelijk, maar een test wijst uit dat dit problemen geeft met auto_increment values. Het is in principe mogelijk om de ene database bij 1 te laten beginnen met nummeren, en de andere bij 5000000 bijvoorbeeld, maar zodra server 1 een waarde van 5000000 ontvangt via replication, telt hij daarna ook vrolijk vanaf daar verder. (Iemand een oplossing hiervoor? Dan ben ik er in principe.)

• Replicatie met extra server
Afbeeldingslocatie: http://www.davidjuffermans.nl/FileUpload/files/sync02.png
Deze heb ik zelf verzonnen. Aangezien de meeste queries die uitgevoerd worden SELECT queries zijn, worden deze uitgevoerd op een lokale database. INSERT en UPDATE queries gaan naar een "MASTER" server, die de wijzigingen dmv replication doorstuurt naar alledrie de locaties. Op deze manier blijft het raadplegen van gegevens snel.

Over de DB-structuur: 101 tabellen, met ongeveer 50 tabellen zonder relatie (de rest wel). De hele database is nu ongeveer 300Mb groot.

[ Voor 7% gewijzigd door sig69 op 17-08-2005 10:19 ]

Roomba E5 te koop


  • jochemd
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Elke vorm van replicatie is fragiel en onderhoudsgevoelig. De veilige, snelle, simpele, betrouwbare, onderhoudbare oplossing is om één centrale database te nemen en de internetverbinding van de locaties te upgraden. En het zou me niets verbazen als de TCO ook nog eens lager was.

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 21:26
jochemd schreef op woensdag 17 augustus 2005 @ 10:57:
Elke vorm van replicatie is fragiel en onderhoudsgevoelig.
Mwoah, ben ik niet helemaal met je eens. Ik heb op een andere locatie een paar MS SQL Servers al zeker een half jaar prima aan het replicaten. Hoe het met MySQL loopt weet ik nog niet.
De veilige, snelle, simpele, betrouwbare, onderhoudbare oplossing is om één centrale database te nemen en de internetverbinding van de locaties te upgraden. En het zou me niets verbazen als de TCO ook nog eens lager was.
Dat is ook een van de voorstellen die in mijn rapport komt (was de eerste waar ik aan dacht), maar eht leek me niet verkeerd om nog wat andere alternatieven te onderzoeken.

Roomba E5 te koop


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik denk dat het probleem met je replicatie met extra server is dat het niet erg is dat de gegevens wat achterlopen maar dat als iemand zelf wat invult ( bv. een manager in nederland ) dat hij zelf wel meteen wilt zien dat hij wat ingevuld heeft. Maar op deze manier kan dat een tijd duren voordat die in de database waar hij de selects doet wordt geupdate.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • jochemd
  • Registratie: November 2000
  • Laatst online: 29-12-2025
sig69 schreef op woensdag 17 augustus 2005 @ 11:05:
[...]

Mwoah, ben ik niet helemaal met je eens. Ik heb op een andere locatie een paar MS SQL Servers al zeker een half jaar prima aan het replicaten.
Daar zeg je het al: één lokatie. Replicatie binnen één lokatie met een netwerklatency van < 1ms is heel wat anders dan replicatie over 3 continenten met latencies > 100 ms. Ken je The Dangers of Replication and a Solution?
Pagina: 1