Sobes.tech
Junior

Какво е репликация в контекста на базите данни?

sobes.tech AI

Отговор от AI

Репликацията е процесът на копиране на данни от основната база данни (master) към една или повече вторични бази данни в реално време или с малко закъснение.

Основните цели на репликацията:

  • Повишаване на наличността. При отказ на майстора, репликата може да поеме натоварването.
  • Увеличаване на скоростта на четене. Заявките за четене се разпределят между майстора и репликите.
  • Резервно копиране. Репликата може да се използва като актуална копие на данните.
  • Аналитика. Аналитичните заявки могат да се изпълняват на репликите, без да се натоварва майстора.

Типове репликация:

  • Асинхронна. Майсторът не чака потвърждение от репликата за прилагането на промените. Може да има малко закъснение на данните.
  • Синхронна. Майсторът чака потвърждение от репликата. Гарантира съгласуваност на данните, но може да забави записите на майстора.
  • Полусинхронна. Компромис между асинхронна и синхронна. Майсторът чака потвърждение от поне една реплика.

Пример за конфигурация на 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='<binlog_файл>', // Получава се с show master status;
MASTER_LOG_POS=<позиция>; // Получава се с show master status;

START SLAVE;