Sobes.tech
Junior

Mis on replikatsioon andmebaaside kontekstis?

sobes.tech AI

Vastus AI-lt

Replikatsioon on protsess, kus andmed kopeeritakse ühelt peamise andmebaasilt (master) ühele või mitmele sekundaarandmebaasile reaalajas või väikese viivitusega.

Replikatsiooni peamised eesmärgid:

  • Saadavuse suurendamine. Kui master ebaõnnestub, võib replikatsioon võtta üle koormuse.
  • Lugemiskiiruse suurendamine. Lugemispäringud jaotatakse masteri ja replikate vahel.
  • Varukoopia. Replikat saab kasutada kui ajakohast koopiat andmetest.
  • Analüüs. Analüütilised päringud võivad toimuda replikatel, mitte koormates masterit.

Replikatsiooni tüübid:

  • Asünkroonne. Master ei oota kinnitust replikalt muudatuste rakendamise kohta. Võib esineda väike andmete viivitus.
  • Sünkroonne. Master ootab kinnitust replikalt. Tagab andmete järjepidevuse, kuid võib aeglustada kirjutamist masterile.
  • Pool-sünkroonne. Kompromiss asünkroonse ja sünkroonse vahel. Master ootab kinnitust vähemalt ühest replikast.

MySQL konfiguratsiooni näide:

// my.cnf masteril
[mysqld]
server-id = 1
log_bin = mysql-bin

// my.cnf replikal
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Ainult lugemisreplik

Replikatsiooni seadistamine:

// Replikal
CHANGE MASTER TO
MASTER_HOST='<IP_master>',
MASTER_USER='<repl_user>',
MASTER_PASSWORD='<repl_password>',
MASTER_LOG_FILE='<binlog_fail>', // Saadakse show master status abil
MASTER_LOG_POS=<positsioon>; // Saadakse show master status abil

START SLAVE;