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;