Sobes.tech
Junior

Wat is replicatie in de context van databases?

sobes.tech AI

Antwoord van AI

Replicatie is het proces van het kopiëren van gegevens van een hoofd-database (master) naar een of meerdere secundaire databases in realtime of met een kleine vertraging.

De belangrijkste doelen van replicatie:

  • Verbetering van de beschikbaarheid. Bij uitval van de master kan de replica de belasting overnemen.
  • Verhoogde leessnelheid. Leesverzoeken worden verdeeld tussen de master en de replica's.
  • Back-up. De replica kan worden gebruikt als een actuele kopie van de gegevens.
  • Analyse. Analytische query's kunnen op de replica's worden uitgevoerd, zonder de master te belasten.

Types replicatie:

  • Asynchroon. De master wacht niet op bevestiging van de replica over de toepassing van de wijzigingen. Er kan een kleine vertraging in de gegevens zijn.
  • Synchroon. De master wacht op bevestiging van de replica. Garandeert gegevensconsistentie, maar kan de schrijfsnelheid op de master vertragen.
  • Semi-synchroon. Een compromis tussen asynchroon en synchroon. De master wacht op bevestiging van ten minste één replica.

Voorbeeld van MySQL-configuratie:

// my.cnf op de master
[mysqld]
server-id = 1
log_bin = mysql-bin

// my.cnf op de replica
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Alleen-lezen replica

Replica-configuratie:

// Op de replica
CHANGE MASTER TO
MASTER_HOST='<IP_van_de_master>',
MASTER_USER='<repl_gebruiker>',
MASTER_PASSWORD='<repl_wachtwoord>',
MASTER_LOG_FILE='<binlog_bestand>', // Verkregen met show master status;
MASTER_LOG_POS=<binlog_positie>; // Verkregen met show master status;

START SLAVE;