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;