Sobes.tech
Junior

Co je to replikace v kontextu databází?

sobes.tech AI

Odpověď od AI

Replikace je proces kopírování dat z hlavní databáze (master) do jedné nebo více sekundárních databází v reálném čase nebo s malým zpožděním.

Hlavní cíle replikace:

  • Zvýšení dostupnosti. V případě selhání masteru může replikace převzít zátěž.
  • Zvýšení rychlosti čtení. Požadavky na čtení jsou rozděleny mezi master a repliky.
  • Zálohování. Replika může být použita jako aktuální kopie dat.
  • Analýza. Analytické dotazy mohou být prováděny na replikách, aniž by zatěžovaly master.

Typy replikace:

  • Asynchronní. Master nečeká na potvrzení od repliky o aplikaci změn. Může dojít k malé zpoždění dat.
  • Synchronní. Master čeká na potvrzení od repliky. Zajišťuje konzistenci dat, ale může zpomalit zápis na master.
  • Semi-synchronní. Kompromis mezi asynchronní a synchronní. Master čeká na potvrzení od alespoň jedné repliky.

Příklad konfigurace MySQL:

// my.cnf na masteru
[mysqld]
server-id = 1
log_bin = mysql-bin

// my.cnf na replikě
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Může být pouze pro čtení

Konfigurace repliky:

// Na replikě
CHANGE MASTER TO
MASTER_HOST='<IP_mastera>',
MASTER_USER='<repl_user>',
MASTER_PASSWORD='<repl_password>',
MASTER_LOG_FILE='<binlog_soubor>', // Získáno pomocí show master status;
MASTER_LOG_POS=<binlog_pozice>; // Získáno pomocí show master status;

START SLAVE;