Налаштування реплікації Master-Slave у MySQL

Термін реплікація використовується для позначення механізму синхронізації декількох копій даних, що підвищує збереження інформації, стійкість до відмови і продуктивність системи. Яскравим прикладом є реплікація бази даних між двома серверами.

Master-Slave реплікація MySQL

У термінології Master-Slave майстром є первинний сервер з базою даних, на ньому проводиться запис до бази, але читання розподіляється між майстром і слейвом залежно від навантаження на систему, що підвищує стійкість до відмови і продуктивність. Крім того, завдяки такому підходу копія бази даних завжди під рукою і її можна відновити у разі відмови одного з серверів.

В яких ситуаціях може знадобитися slave-сервер? Наприклад, коли надходить великий масив даних для запису в базу і master-сервер просто не встигає виконувати читання і клієнту доводиться чекати закінчення запису, чого можна уникнути завдяки slave-серверу.

Можливі ситуації, коли майстер-сервер виходить з ладу, в цьому випадку слейв-сервер підхоплює всі функції майстра і працює поодинці до його відновлення. Клієнт швидше за все нічого не помітить, і вже точно не буде годину-дві-три чекати поки полагодять майстри.

Реплікацію налаштувати зовсім не складно, благо механізм закладено в MySQL із самого початку.

Налаштування на Master сервері

Важливо! Якщо bind-address вже було прописано, його потрібно змінити, інакше не вдасться встановити підключення між серверами.

Відразу після цього рестартуємо базу даних на сервері.

Тепер необхідно створити користувача з правами на реплікацію нашої бази даних, зробити це можна з-під рута в консолі MySQL за допомогою команди

Де замість «slave_user» та «slave_password» потрібно написати логін та пароль для слейва.

Тепер подивимося дані про майстра

Значення стовпцівFile іPosition потрібно запам'ятати, вони будуть використані в налаштуванні слейва, до чого ми зараз переходимо.

Налаштування на Slave сервері

Насамперед необхідно створити базу даних з таким самим ім'ям, як у тієї, яку ми збираємося реплікувати. Це важливий крок, не можна їм нехтувати. Далі переходимо до вже знайомого нам файлу конфігураціїmy.cnf і пишемо налаштування.

Важливо! У bin-log прописується шлях до бін-логуна сервері. Ідентифікатор сервера повинен відрізнятись від айді майстра, зручно ставити його на 1 більше.

Далі необхідно налаштувати підключення до майстра та включити slave-режим.

З цього моменту всі зміни в базі даних будуть передаватися з майстра на слейву.

Перевірка статусу реплікації

Окрім команди SHOW MASTER STATUS; є аналогічна для слейву SHOW SLAVE STATUS \ G, яка виведе таблицю з інформацією. Головна ознака того, що сервери з'єдналися та коректно працюють — наявність таких рядків