Реплікація mysql. Короткий екскурс
Рано чи пізно перед будь-яким адміністратором виникає проблема, коли потужності його серверів не вистачає для виконання поставлених завдань, а придбання нової техніки практично неможливо через фінансові труднощі, або просто така покупка викликає сумнів з приводу її окупності в майбутньому.
У світлі таких подій не зайвим буде дізнатися про таке поняття, як реплікація баз даних. Подібні знання значно спростять життя будь-якій людині, що займається обслуговуванням високонавантажених систем і дозволять створити оптимальну робочу апаратну конфігурацію. У загальних рисах реплікація бази даних має на увазі об`єднання потужностей набору комп`ютерів для підвищення коефіцієнта продуктивності системи і її відмовостійкості. Першого ефекту можна добитися шляхом перекидання частини запитів на резервний сервер, а другого - шляхом створення локальної копії бази даних, яка в разі необхідності замінить головну базу.
Найбільш простий і поширений спосіб організації реплікації - це реплікація MySQL. Причому MySQL підтримує цей функціонал з 3.23.15-версії і тільки односторонню реплікацію. В даному випадку створюється спеціальна конфігурація «master-slave», причому головний сервер (master) може також одночасно бути і підлеглим сервером (slave).
Реплікація MySQL на даний момент часу реалізовується наступним чином. Створюється головний сервер, в обов`язки якого входить стежити за змінами виконуваного файлу, в якому відображаються всі зміни бази даних і підпорядкована машина або машини, які читають і виконують з цього файлу запити. Підлеглий сервер постійно зв`язується з головним, тому всі зміни, що відбулися на master, переходять на slave, і не виникає ситуації розбіжність і некоректності даних.
Реплікація MySQLустанавлівается в кілька етапів.
Відео: Курс "PHP. Швидкий старт"
- Адміністратор системи повинен упевнитися, що на всіх його машинах встановлена остання версія MySQL.
- Необхідно створити нового користувача на головному сервері, під логіном якого відбуватиметься реплікація MySQL (він повинен мати рівень привілеї FILE і права зв`язуватися зі slave-машинами).
- Далі потрібно зупинити MySQL на головком і підлеглих серверах і скопіювати всі дані, що відносяться до реплікації. На Unix-системах це можна зробити командою tar, яка робить резервний архів всього каталогу. Користувачам Windows підійде WinZip.
- У секцію mysqld додати наступні рядки: server-id = unique number, log-bin. Всі зміни проводяться в файлі My.conf на master сервері, після чого він повинен бути обов`язково перевантажений.
- На slave-машинах в аналогічний файл потрібно дописати наступний фрагмент коду:
master-host = lt; ім`я Вашого master хостаgt;
Відео: В.Башкатов.Реплікація проти кластеризації
master-user = lt; логін пользователяgt;
master-password = lt; секретний пароль пользователяgt;
Відео: Робота з mySQL
master-port = lt; порт, по якому будуть підключатися підлеглі сервера до главномуgt;
server-id = lt; id даної slave машіниgt;
* В трикутних дужках потрібно вводити свої дані, а не вищезгаданий текст.
В кінці скопіюйте всі бази даних на підлеглі сервера і перезапустіть всі машини.
Відео: 016. Бази даних: легка реляційна високопродуктивна СУБД MySQL - Павло Пушкарьов
Після таких дій реплікацію можна вважати встановленою і налаштованої, а це означає, що тепер ваш головний сервер не буде страждати від високого завантаження і в разі збою будь-якої таблиці на ньому її з легкістю можна буде відновити з іншого комп`ютера. У підсумку можна на кілька років забути про покупку нового апаратного забезпечення для високонавантажених систем і задовольнятися налагодженої роботою існуючої техніки.