Toon posts:

[MySQL] 2 MySQL-Servers synchroniseren

Pagina: 1
Acties:

Verwijderd

Topicstarter
We hebben hier 2 servers draaien met Windows 2000 Server Edition, met daarop MySQL 5.0 geinstalleerd.

Nu is het zo dat op één van de servers een belangrijke website staat met een database erachter. Deze database (en website) willen we graag op twee servers laten draaien zodat, als de ene uitvalt er doorgegaan kan worden op nummer twee. Voor de website heb ik al een oplossing gevonden met een synchronisation tool, maar voor de database nog niet.

Ik weet dat er op de website MySQL.com het één en ander staat daarover, zoals clusteren of replication. Maar we gebruiken MySQL icm. het Administrator Tool, omdat we niet zo sterk zijn in het instellen op de commandline. Is er een mogelijkheid om die synchronisatie in het Administrator Tool te doen?

En zo dat als nummer 1 uitvalt er doorgegan kan worden op nummer 2 (master - slave) en als 1 weer online is dat 1 synchroniseerd van 2 (slave - master)?

Alvast bedankt.

Verwijderd

Interessant onderwerp. Ik ben hier verder niet zo van op de hoogte maar hoor graag wat ervaringen van mede-tweakers.

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03-2025
Het simpelste om op te zetten is een single master -> single slave configuratie.
Hierbij heb je 1 master waar alle mutaties op plaatsvinden (en ook alleen maar op deze master...).
Als je namelijk een mutatie op de slave uitvoerd loop je niet meer synchroon en heb je een probleem. (de master update zichzelf niet vanuit de slave!!)
Select queries kunnen op beide worden uitgevoerd (hoe je dit implementeerd is aan je zelf, denk hierbij aan loadbalancers of round-robin DNS o.i.d.).

Om een master-slave op te zetten moet je eerst een account aan maken op de master met het privilege van 'REPLICATION SLAVE', verdere privileges zijn niet nodig.

Zorg ervoor dat er geen wijzigingen meer worden gemaakt in de database tijdens het volgende stuk!!
Je kunt nu de database(s) van de master overzetten naar de slave (zodat ze starten met exact dezelfde database(s)). Dit kun je doen door bijv. het mysqlhotcopy commando. Of door gewoon de databases te kopieren vanuit de database directory van harde schijf. (vergeet niet te flushen en een lock te zetten als je MyISAM tabellen gebruikt).

nu nog een kleine aanpassing aan my.conf maken:
code:
1
2
log-bin=mysql-bin
server-id=1


herstart de master en voer het volgende commando uit:
MySQL:
1
show master status;

Let goed op wat je terug krijgt van mysql, de velden File en Position heb je zometeen nodig!!

Nu kun je de databases op de slave zetten.
Hiervoor stop je de slave en kopieer je de database(s) van de master naar de directory op de slave.

Voeg aan my.cnf (van de slave) toe:
server-id=2

start de slave en voer de volgende code uit in een client:
MySQL:
1
2
CHANGE MASTER TO MASTER_HOST='ip-adres van master', MASTER_USER='gebruikersnaam van replica-user', MASTER_PASSWORD='password van die user', MASTER_LOG_FILE='filenaam uit File-veld', MASTER_LOG_POS='getal uit Position-field';
START SLAVE;


nu zou het moeten werken...

[edit]
ik zie dat je eigenlijk een situatie wilt met 2 masters (die elkaar updaten), dat kan wel maar dan moet je wel terdege rekening houden met het desgin van je tabellen e.d. (auto-increment werkt dan niet meer fatsoenlijk...).

[ Voor 8% gewijzigd door El_kingo op 24-11-2005 15:55 ]


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 21:29
sparcky schreef op donderdag 24 november 2005 @ 15:52:
[edit]
ik zie dat je eigenlijk een situatie wilt met 2 masters (die elkaar updaten), dat kan wel maar dan moet je wel terdege rekening houden met het desgin van je tabellen e.d. (auto-increment werkt dan niet meer fatsoenlijk...).
Volgens mij heb ik hier wel eens een testje mee gedaan, en in principe ging dat goed. Het autoincremented id werd gewoon mee gerepliceerd. Of je het echt wil is een tweede, maar goed...

Roomba E5 te koop


Verwijderd

Topicstarter
OK, Bedankt...

Ga het proberen ;)

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23-04 16:22
Dit is een duidelijke en volledige tutorial: http://phpbuilder.com/col...eanu20000912.php3?aid=106

  • avon
  • Registratie: November 2002
  • Laatst online: 27-06-2025
Let op dat je alleen op de Master kan schrijven met deze wijze van replicatie;
Clustering is op Windows nog niet mogelijk aldus de MySql.com website.

Zelf heb ik het aan de gang gekregen; daarbij scheid ik de query's. De insert query's
lopen via de Master en de Select Query's via een load balance scriptje (waarbij de
verhouding 25% / 75 % is)

[ Voor 44% gewijzigd door avon op 25-11-2005 14:19 ]

Gratis webwinkel beginnen? Met Onetoshop.com kunt u direct beginnen!


  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03-2025
sig69 schreef op donderdag 24 november 2005 @ 16:34:
[...]

Volgens mij heb ik hier wel eens een testje mee gedaan, en in principe ging dat goed. Het autoincremented id werd gewoon mee gerepliceerd. Of je het echt wil is een tweede, maar goed...
Ja dit gaat ook in principe goed, totdat om 1 of andere reden op beide master (bijna tegelijkertijd) een insert o.i.d. wordt gedaan zonder dat tussendoor een replicatie plaatsvind. Als dat gebeurt gaat mysql snoeihard op z'n bek...
Pagina: 1