Sobes.tech
Junior

Ce este replicarea în contextul bazelor de date?

sobes.tech AI

Răspuns de la AI

Replikarea este procesul de copiere a datelor dintr-o bază de date principală (master) în una sau mai multe baze de date secundare în timp real sau cu o întârziere mică.

Obiectivele principale ale replicării:

  • Creșterea disponibilității. În cazul în care masterul se defectează, replica poate prelua sarcina.
  • Creșterea vitezei de citire. Solicitările de citire sunt distribuite între master și replici.
  • Copiere de rezervă. Replica poate fi utilizată ca o copie actualizată a datelor.
  • Analiză. Solicitările analitice pot fi efectuate pe replici, fără a încărca masterul.

Tipuri de replicare:

  • Asincronă. Masterul nu așteaptă confirmarea de la replica privind aplicarea modificărilor. Poate exista o întârziere mică a datelor.
  • Sincronă. Masterul așteaptă confirmarea de la replica. Asigură coerența datelor, dar poate încetini scrierea pe master.
  • Semi-sincronă. Un compromis între asincronă și sincronă. Masterul așteaptă confirmarea de la cel puțin o replică.

Exemplu de configurare MySQL:

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

// my.cnf pe replica
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Poate fi doar pentru citire

Configurarea replicii:

// Pe replica
CHANGE MASTER TO
MASTER_HOST='<IP-ul masterului>',
MASTER_USER='<utilizator_repl>',
MASTER_PASSWORD='<parolă_repl>',
MASTER_LOG_FILE='<fișier_binlog>', // Se obține cu show master status;
MASTER_LOG_POS=<poziție_binlog>; // Se obține cu show master status;

START SLAVE;