Sobes.tech
Junior

Čo je replikácia v kontexte databáz?

sobes.tech AI

Odpoveď od AI

Replikácia je proces kopírovania dát z hlavnej databázy (master) do jednej alebo viacerých sekundárnych databáz v reálnom čase alebo s malým oneskorením.

Hlavné ciele replikácie:

  • Zvýšenie dostupnosti. V prípade zlyhania mastera môže replikácia prevziať záťaž.
  • Zvýšenie rýchlosti čítania. Žiadosti o čítanie sa rozdeľujú medzi master a repliky.
  • Zálohovanie. Replika môže byť použitá ako aktuálna kópia dát.
  • Analýza. Analytické dotazy môžu byť vykonávané na replikách, bez zaťaženia mastera.

Typy replikácie:

  • Asynchrónna. Master nečaká na potvrdenie od repliky o aplikácii zmien. Môže dôjsť k malému oneskoreniu dát.
  • Synchronná. Master čaká na potvrdenie od repliky. Zabezpečuje konzistenciu dát, ale môže spomaliť zápis na master.
  • Semi-synchronná. Kompromis medzi asynchrónnou a synchronnou. Master čaká na potvrdenie od aspoň jednej repliky.

Príklad konfigurácie MySQL:

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

// my.cnf na replike
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Môže byť iba na čítanie

Konfigurácia repliky:

// Na replike
CHANGE MASTER TO
MASTER_HOST='<IP_mastera>',
MASTER_USER='<repl_user>',
MASTER_PASSWORD='<repl_password>',
MASTER_LOG_FILE='<binlog_súbor>', // Získané pomocou show master status;
MASTER_LOG_POS=<pozícia>; // Získané pomocou show master status;

START SLAVE;