Как работает кластеризация БД? - PullRequest
4 голосов
/ 17 июня 2009

У меня есть вопрос к администраторам баз данных: если я масштабируюсь от настройки одного веб-сервера / БД до двух настроек веб-сервера / двух БД с балансировкой нагрузки перед веб-серверами для равномерной маршрутизации входящих запросов ... как работают такие решения, как MySQL Cluster, чтобы изменение, внесенное в один сервер БД, сразу же стало известно другому (в противном случае пользователи, перенаправленные на другой сервер БД, не увидят данные или потеряют данные), или, по крайней мере, чтобы другой веб-сервер осведомлен о том, что он читает «грязные данные», и он должен повторить попытку через X секунд, чтобы получить последние данные?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 17 июня 2009

ДВА способа сделать это. Активный / Активный или Активный / Пассивный. Актив / Пассив является наиболее распространенным Данные синхронизируются на пассивном узле. Кластер представляет собой полезную конфигурацию, поскольку активный узел выходит из строя, пассивный элемент немедленно переключается, поэтому время простоя отсутствует. Кластеризация непрерывно синхронизирует 2 узла в кластере.

Я работаю с сервером SQL, но я думаю, что основная предпосылка кластеризации та же для mySQL - это отсутствие (или отсутствие заметных) простоев при сбое оборудования.

РЕДАКТИРОВАТЬ: Кроме того, программное обеспечение кластеризации выполняет синхронизацию. Вам не нужно беспокоиться. Вы видите узлы кластера как виртуальный каталог, который ведет себя как один сервер в Windows.

вот документ, объясняющий это

http://www.sql -server-performance.com / статьи / кластеризация / clustering_intro_p1.aspx

2 голосов
/ 17 июня 2009

В кластеризации серверов Windows (в отличие от высокопроизводительной кластеризации) существует общий внешний массив хранения. Активный узел получает владение / контроль над хранилищем, и когда этот узел отказывает, хранилище «переключается» на ранее пассивный узел (который теперь является активным узлом). Существуют также различные схемы, которые позволяют использовать независимое хранилище на каждом узле по сравнению с общим хранилищем. Однако для этого требуется, чтобы приложение обладало достаточным интеллектом, чтобы знать, что оно кластеризовано, и синхронизировало два набора хранилищ.

0 голосов
/ 17 июня 2009

Кластеризация - это также когда несколько узлов обрабатывают рабочую нагрузку, иногда это называется активными / активными кластерами, то есть все узлы разделяют рабочую нагрузку и являются активными. Обычно это выполняется специализированным программным обеспечением, таким как Oracle RAC ( RAC @ Wikipedia ) для базы данных Oracle RDBMS. RAC позволяет Oracle масштабироваться до очень больших рабочих нагрузок.

...