MySQL - Кластеризация = Администрирование баз данных ФКН ВГУ 2012 (преп. - Беляев А.С.)

Администрирование баз данных

Кластер – набор нескольких соединенных вместе серверов, которые для клиентских приложений выглядят как один сервер.

Серверы, входящие в состав кластера, равноправны

Кластеризация

Программное обеспечение для кластеризации обеспечивает балансировку нагрузки
Выход из строя одного узла кластера не влияет на оставшиеся узлы

При кластеризации :

  1. используем концепцию Share-Nothing
  2. Каждый узел кластера имеет свой жесткий диск, не рекомендуется использовать разделяемые ресурсы
  3. Интеграция стандартного хранилища MySQL с хранилищем в памяти NDB

Кластеризация MySQL включает:

  • NDB – хранилище данных, располагающееся в памяти
  • Management Node – управляющий сервер
  • Data Node – сервер, который хранит данные кластера
  • SQL Node – сервер, который осуществляет доступ к данным кластера

Для поддержки кластеризации необходимо перекомпилировать исходные тексты MySQL со специальным ключом
Также необходимо включить NDB при старте

mysqld (--ndbcluster)

Также на узлах кластера запускаются специальные процессы:

  • Обслуживающий процесс хранения данных (ndbd)
  • Процесс, который читает файл конфигурации и распространяет информацию на все узлы кластера (ndb_mgmd)

Кластеризация MySQL Поддерживается для Unix – платформ
Минимальное количество серверов – три
Рекомендуется использовать более чем один сервер каждого типа

При кластеризация MySQL=

  1. Узлы хранения данных могут быть объединены в группы
  2. Каждая группа хранит PARTITION- часть данных кластера
  3. Каждый узел внутри кластера хранит REPLICA – копию данных PARTITION
  4. Для коммуникации между серверами используется протокол TCP/IP
  5. Данные не шифруются
  6. Каждый тип узла настраивается отдельно
  7. В первую очередь конфигурируется Management узел

Кластеризация MySQL=

  1. Management nodes
  2. Data nodes
  3. SQL nodes

При создании таблиц необходимо указывать, что они хранятся в кластеризованном хранилище.

CREATE TABLE tbl_name (col_name column_definitions) ENGINE=NDBCLUSTER; 

Кластеризация MySQL

Выключать кластер необходимо специальной командой, которая корректно выключит все узлы в нужном порядке
Для кластеров допускается репликация