Sobes.tech
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;