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;