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;