Що таке реплікація в 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