Kies een thema:

Cursus MySQL

Beginner


Gevorderde


Appendix


Informatie


Referenties


Links


1 MySQL server

1.6 Schaalbaarheid en beschikbaarheid


» Inhoudstafel
1.6.1 Inleiding
1.6.2 Oplossingen

1.6.1 Inleiding

Gezien de belangrijke functie die een database server binnen een netwerk heeft is het van belang dat de beschikbaarheid en de schaalbaarheid goed zijn. Beschikbaarheid en schaalbaarheid hebben een sterke band met elkaar. Wat als de server de schaalbaarheid niet goed kan regelen? Dan crashed de server waarschijnlijk en is de beschikbaarheid niet goed. In dit hoofdstuk bespreken we enkele oplossingen die hiervoor beschikbaar zijn. De belangrijkste twee binnen een MySQL server worden later uitgebreid behandeld: MySQL server replica en MySQL server cluster


1.6.2 Oplossingen

Om de beschikbaarheid en de schaalbaarheid van de server te garanderen zijn er een aantal oplossingen. Deze oplossingen worden hieronder verder behandeld.

MySQL server replica

Dit is de eerste oplossing die ondersteund wordt door MySQL. Deze oplossing kan data en statements (queries) kopieren naar een oneindig aantal kinderen. Het schrijven van de replica gebeurt niet synchroon. Ook is er geen enkele zekerheid dat de data daadwerkelijk op de kinderen weg geschreven wordt.

Voordelen

  • MySQL server replica kan op elke platform gebruikt worden die MySQL ondersteund.
  • Het schrijven gebeurt asynchroon. Dit heeft als voordeel dat het altijd herstart en gestopt kan worden. Hierdoor is het makkelijk bij het schrijven van grote databases en kan het zelfs ideaal zijn bij het repliceren over grote afstanden
  • Data kan naar een oneindig aantal kinderen geschreven worden. Dit maakt het dus ideaal voor omgevingen waarin veel lees-queries uitgevoerd worden en minder schrijf-queries. Dit is bijvoorbeeld vaak het geval bij webservers.
Nadelen
  • Data kan alleen worden geschreven naar de master. Er zijn wel oplossingen die het mogelijk maken om naar meerdere masters te schrijven.
  • Er is geen zekerheid dat de data op de master gelijk is aan de data op de kinderen. Dit omdat het repliceren asynchroon verloopt. Hierdoor kan het dus zijn dat de data niet gelijk is omdat er een kleine vertraging is.
Wanneer gebruiken
  • Omgevingen waarin veel gelezen wordt en niet zoveel geschreven. 
  • Logging of data analyse. De kinderen kunnen de data analyseren zodat de master hier niet mee belast wordt.
  • Online backup, in combinatie met bijvoorbeeld Heartbeat kan dit gebruikt worden voor online backup. Je moet wel letten op de vertraging zoals bij de nadelen wordt besproken.
  • Offline backup, zoals we reeds beschreven hebben bij backup en recovery is het nodig om een server offline te halen voor een offline backup. Je kan bij MySQL server replica een kind offline halen, de data backuppen en vervolgens het kind weer online zetten.
MySQL server cluster

Dit is de tweede oplossing die ondersteund wordt door MySQL. Deze oplossing maakt het mogelijk om database informatie over verschillende servers te verdelen. Ten opzichte van MySQL server replica kan deze oplossing echter vanuit elke server schrijven en lezen naar elke server. 

Voordelen

  • Biedt meerdere servers aan om te lezen en te schrijven
  • Biedt automatische failover tussen de servers. Alleen de actie die op dat moment uitgevoerd wordt op de actieve server is verloren.
  • Data wordt constant gesynchroniseerd tussen de servers.
Nadelen
  • Niet op alle platformen beschikbaar
  • Een cluster moet verbonden worden door een LAN. Het is dus geen oplossing om data over hele wereld met elkaar te synchroniseren.
Wanneer gebruiken

  • Wanneer er een hele hoge beschikbaarheid moet zijn.
  • Omgevingen waarin het schrijven evenveel of meer plaatsvindt dan het lezen.

« Meerdere MySQL servers op 1 machine    MySQL Enterprise Server »