Sobes.tech
Junior

Šta je replikacija u kontekstu baza podataka?

sobes.tech АИ

Одговор од АИ

Репликација је процес копирања података из главне базе података (мастер) у једну или више секундарних база података у реалном времену или са малим закашњењем.

Главни циљеви репликације:

  • Повећање доступности. У случају квара мајстора, реплика може преузети оптерећење.
  • Повећање брзине читања. Захтеви за читање се распоређују између мајстора и реплика.
  • Резервна копија. Реплика може бити коришћена као актуелна копија података.
  • Аналитика. Аналитички упити могу се изводити на репликама, без оптерећења мајстора.

Врсте репликације:

  • Асимптонска. Мастер не чека потврду од реплике о примени промена. Може доћи до малог закашњења података.
  • Синхрона. Мастер чека потврду од реплике. Гарантује конзистентност података, али може успорити записе на мајстору.
  • Полусинхрона. Компромис између асинхроне и синхроне. Мастер чека потврду од најмање једне реплике.

Пример конфигурације MySQL:

// my.cnf на мајстору
[mysqld]
server-id = 1
log_bin = mysql-bin

// my.cnf на реплици
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Може бити само за читање

Конфигурација реплике:

// На реплици
CHANGE MASTER TO
MASTER_HOST='<IP_мастера>',
MASTER_USER='<repl_user>',
MASTER_PASSWORD='<repl_password>',
MASTER_LOG_FILE='<бинлог_фајл>', // Добија се са show master status;
MASTER_LOG_POS=<позиција>; // Добија се са show master status;

START SLAVE;