Налаштування реплікації 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, яка виведе таблицю з інформацією. Головна ознака того, що сервери з'єдналися та коректно працюють — наявність таких рядків