Що таке реплікація в mysql?
Відео: Асинхронна реплікація без цензури: архітектурні проблеми MySQL, або чому PostgreSQL завоює світ
Не так давно мене попросили розповісти про реплікації в MySQL. Я вирішив, що ця тема може бути багатьом корисна, тому цій статті я розповім про те, що таке реплікація в MySQL, коли вона потрібна і як її налаштувати.
Головне завдання реплікації - об`єднувати потужності декількох серверів. Припустимо, у Вашого сайту виділений сервер, але з часом він стає дуже відвідуваним і вже не витримує навантаження. В результаті, починаються гальма і регулярні падіння сервера. Найпростіший спосіб - це купити більш потужний сервер, і так більшість і надходить. Але рано чи пізно настає момент, коли вже вартість зростання ціни на сервер не відповідає зростанню його продуктивності, тому вигідніше купити 2 різних сервера за менші гроші.
Відео: 7. Бази даних. Реплікація, повнотекстовий пошук, JSON | Технострим
У підсумку, Ваша база буде відразу на двох серверах. Коли один головний сервер (він же головний) вже не справляється, то йде перемикання на запасний.
Усе запити поновлення бази завжди йдуть на головний сервер. Після поновлення головного сервера, він поміщає про це інформацію в окремий файл, звідки і беруть всю інформацію підлеглі сервера. А ось операції вибірки, яких зазвичай більшість, і вони самі повільні, вже можуть передаватися на підлеглі сервера, оскільки і там, і там дані однакові.
Відео: Ефективна налагодження реплікації MySQL / Світу Смирнова (Percona)
Тепер розберемо, як налаштовується реплікація в MySQL:
- встановіть самі свіжі версії MySQL на все сервера.
- Створіть на головному сервері користувача з привілеєм REPLACATION SLAVE. В якості адреси, з якого він може підключатися, вкажіть "Усе".
- Зупиніть всі сервера.
- В налаштуваннях MySQL (у файлі my.cnf) в розділі [Mysqld] додайте наступні рядки:
log-binЗверніть увагу, що server-id на всіх серверах повинен бути різний. Фактично це те, що відрізняє один сервер від іншого.
server-id=1 - На підлеглих серверах додайте в налаштування MySQL наступні рядки:
master-host= ім`я_головного_хоста
master-user= логін_створеного_користувача
master-password= пароль_створеного_користувача
master-port= порт_для_підключення_до_головному_сервера
server-id=id_даного_підлеглого_сервера - Перенесіть всі бази з головного сервера на підлеглі.
- запустіть головний сервер, потім все підлеглі.
Відео: How to Configure MySQL Master-Slave Replication on Ubuntu Linux
Реплікацію можна вважати налаштованої. Після запуску всіх серверів вони один до одного підключаться. І коли сервер вже не витримує, то всі запити, НЕ оновлюють дані, він буде перенаправляти на підлеглі сервера.
І ще раз повторюся, що вся ця тема потрібна тільки високонавантажених проектах, яким не те, що хостингу не вистачає, а й потужного виділеного сервера.
Connect2sql
Що потрібно знати про виділених серверах?
Де краще купити виділений сервер
Серверні настройки joomla
Вийшов відеокурс "php і mysql з нуля до гуру"
Як правильно вибрати хостинг?
Чому не працює php?
Що таке сокет в php
Чому ваш сайт часто недоступний?
Порівняння mysql vs mariadb
Індекси в mysql
Pdo. Частина 1.
Помилка 2006 чи server has gone away
Двигуни баз даних.
Імпорт бази даних в phpmyadmin
Установка postgresql centos 7
Різниця між sql і mysql
Mysql
Установка lamp ubuntu 16.04
Помилка max user connections в mysql
Unable to connect to the database в joomla
Чому ваш сайт часто недоступний?
Установка postgresql centos 7
Pdo. Частина 1.
Індекси в mysql
Чому не працює php?
Що таке сокет в php
Mysql
Помилка max user connections в mysql
Connect2sql
Помилка 2006 чи server has gone away