Junior
Kas yra replikacija duomenų bazės kontekste?
sobes.tech AI
Atsakymas iš AI
Replikacija yra procesas, kai duomenys kopijuojami iš pagrindinės duomenų bazės (master) į vieną ar kelias antrines duomenų bazes realiu laiku arba su nedideliu vėlavimu.
Pagrindiniai replikacijos tikslai:
- Padidinti prieinamumą. Esant master gedimui, replikacija gali perimti apkrovą.
- Padidinti skaitymo greitį. Skaitymo užklausos paskirstomos tarp master ir replikų.
- Atsarginė kopija. Replikacija gali būti naudojama kaip atnaujinta duomenų kopija.
- Analizė. Analitiniai užklausos gali būti vykdomi replikose, neapkraunant master.
Replikacijos tipai:
- Asinchroninė. Master nesulaukia patvirtinimo iš replikos apie pakeitimų taikymą. Gali būti nedidelis duomenų vėlavimas.
- Synchronous. Master laukia patvirtinimo iš replikos. Užtikrina duomenų nuoseklumą, bet gali sulėtinti įrašus į master.
- Semi-synchronous. Kompromisas tarp asinchroninės ir sinchroninės. Master laukia patvirtinimo iš bent vienos replikos.
Pavyzdys MySQL konfigūracijos:
// my.cnf ant master
[mysqld]
server-id = 1
log_bin = mysql-bin
// my.cnf ant replikos
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Tik skaitymui replikacija
Replikacijos nustatymas:
// Replikacijoje
CHANGE MASTER TO
MASTER_HOST='<IP_master>',
MASTER_USER='<repl_user>',
MASTER_PASSWORD='<repl_password>',
MASTER_LOG_FILE='<binlog_failas>', // Gauta naudojant show master status;
MASTER_LOG_POS=<pozicija>; // Gauta naudojant show master status;
START SLAVE;