Как Oracle обеспечивает высокую доступность?

Как Oracle обеспечивает высокую доступность?

Мы ищем замену нашему кластеру MySQL - Oracle или pgsql. Я прочитал весь документ о HA в системе баз данных Oracle 11, но я действительно не смог понять его достаточно хорошо. Что я понял, так это то, что это RAC, который делает HA. Есть ли какой-либо прокси-сервер, например, mysql-proxy? Или кластер меняет IP-адрес с помощью какого-то программного обеспечения типа heart-beat? Или приложения должны иметь в строке подключения другой пункт назначения на случай отказа основного? Мне это нужно, чтобы я мог оценить, сколько усилий потребуется для перекодирования основных приложений.

решение1

Принцип работы Oracle RAC немного сложен, но в упрощенном виде он выглядит следующим образом:

Oracle RAC состоит из узлов базы данных Oracle. Каждый узел имеет локальный прослушиватель, а весь кластер имеет один или несколько прослушивателей SCAN (Single Client Access Name). Каждый прослушиватель имеет свой собственный виртуальный IP-адрес. Если хост умирает, адрес прослушивателя мертвого хоста берется другим хостом. Хосты должны иметь выделенный интерфейс межсоединения, по которому передается heartbeat и выполняется синхронизация между серверами.

Клиенту необходимо подключиться только к прослушивателю SCAN, и его IP-адрес постоянен (если в кластере больше SCAN, то DNS должен разрешить имя для этих адресов, заставляя клиентов подключаться к SCAN с помощью циклического перебора). Когда клиент подключается, кластер перенаправляет его к лучшему локальному прослушивателю, но для этого клиенту не нужна дополнительная настройка.

У Oracle есть довольно хорошая документация по RAC, но внедрение и администрирование не являются простыми (мягко говоря). Вам следует прислушаться к совету pfo и нанять профессионала, если вы хотите использовать RAC.

решение2

RAC есть RAC / это черный ящик, в общем-то. Все HA-вещи обрабатываются на уровне RAC и драйвера. Перекодирование приложений необходимо только потому, что Oracle — это не MySql.

Связанный контент