Що таке реплікація в mysql?

Що таке реплікація в MySQL?

Відео: Асинхронна реплікація без цензури: архітектурні проблеми MySQL, або чому PostgreSQL завоює світ

Не так давно мене попросили розповісти про реплікації в MySQL. Я вирішив, що ця тема може бути багатьом корисна, тому цій статті я розповім про те, що таке реплікація в MySQL, коли вона потрібна і як її налаштувати.

Головне завдання реплікації - об`єднувати потужності декількох серверів. Припустимо, у Вашого сайту виділений сервер, але з часом він стає дуже відвідуваним і вже не витримує навантаження. В результаті, починаються гальма і регулярні падіння сервера. Найпростіший спосіб - це купити більш потужний сервер, і так більшість і надходить. Але рано чи пізно настає момент, коли вже вартість зростання ціни на сервер не відповідає зростанню його продуктивності, тому вигідніше купити 2 різних сервера за менші гроші.

Відео: 7. Бази даних. Реплікація, повнотекстовий пошук, JSON | Технострим




У підсумку, Ваша база буде відразу на двох серверах. Коли один головний сервер (він же головний) вже не справляється, то йде перемикання на запасний.

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

Відео: Ефективна налагодження реплікації MySQL / Світу Смирнова (Percona)

Тепер розберемо, як налаштовується реплікація в MySQL:

  1. встановіть самі свіжі версії MySQL на все сервера.
  2. Створіть на головному сервері користувача з привілеєм REPLACATION SLAVE. В якості адреси, з якого він може підключатися, вкажіть "Усе".
  3. Зупиніть всі сервера.
  4. В налаштуваннях MySQL (у файлі my.cnf) в розділі [Mysqld] додайте наступні рядки: log-bin
    server
    -id=1
    Зверніть увагу, що server-id на всіх серверах повинен бути різний. Фактично це те, що відрізняє один сервер від іншого.
  5. На підлеглих серверах додайте в налаштування MySQL наступні рядки: master-host= ім`я_головного_хоста
    master
    -user= логін_створеного_користувача
    master
    -password= пароль_створеного_користувача
    master
    -port= порт_для_підключення_до_головному_сервера
    server
    -id=id_даного_підлеглого_сервера
  6. Перенесіть всі бази з головного сервера на підлеглі.
  7. запустіть головний сервер, потім все підлеглі.

Відео: How to Configure MySQL Master-Slave Replication on Ubuntu Linux

Реплікацію можна вважати налаштованої. Після запуску всіх серверів вони один до одного підключаться. І коли сервер вже не витримує, то всі запити, НЕ оновлюють дані, він буде перенаправляти на підлеглі сервера.

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

Поділися в соціальних мережах:

Схожі
Чому ваш сайт часто недоступний?Чому ваш сайт часто недоступний?
Установка postgresql centos 7Установка postgresql centos 7
Pdo. Частина 1.Pdo. Частина 1.
Індекси в mysqlІндекси в mysql
Чому не працює php?Чому не працює php?
Що таке сокет в phpЩо таке сокет в php
MysqlMysql
Помилка max user connections в mysqlПомилка max user connections в mysql
Connect2sqlConnect2sql
Помилка 2006 чи server has gone awayПомилка 2006 чи server has gone away
» » Що таке реплікація в mysql?