Кластерные технологии Oracle - Обеспечение высокой доступности для приложений

ОГЛАВЛЕНИЕ

Обеспечение высокой доступности для приложений

СУБД Oracle поддерживает множество механизмов, облегчающих быстрое восстановление работы после всех видов сбоев. Кроме этого такие механизмы, как Fast Application Notification, Fast Connection Failover и Transparent Application Failover, позволяют приложениям маскировать сбои компонентов кластера от пользователей. Прозрачное переключение приложения Transparent Application Failover - механизм, который в случае сбоя экземпляра, обеспечивает автоматическое пересоздание соединения с другим экземпляром СУБД Oracle в кластере. Само переключение на другой экземпляр производится на уровне клиентского сетевого стека программного обеспечения Oracle и прозрачно для приложения. При этом в случае, если в момент сбоя на экземпляре выполнялась транзакция, эта транзакция должна быть повторно выполнена инициировавшем ее приложением после переключения к другому экземпляру.

Для более тесной интеграции приложения с кластерной СУБД, приложение может подписаться на события FAN, что позволит мгновенно реагировать на любые изменения (в том числе планируемые) в конфигурации кластера, а не только на сбой, который уже произошел. Автоматическая поддержка обработки событий FAN уже реализована для пулов соединений JDBC, ODP.NET, OCI - это механизм называется Fast Connection Failover (FCF). Приложения, использующие такие пулы соединений, получают возможность реакции на события FAN без дополнительных усилий со стороны разработчиков.

Беспрерывность при выполнении сервисного обслуживания

Real Application Clusters обеспечивает непрерывное обслуживание, как при сбоях, так и при выполнении запланированных сервисных работ. Большинство сервисных операций с базами данных может быть выполнено без остановки в обслуживании и прозрачно для пользователя. Другая часть работ по обслуживанию могут выполняться на узлах кластера поочередно, что приводит к значительной минимизации простоев.

В случае если обновление программного обеспечения Oracle сопровождается внесением изменений в словарь базы данных, Oracle предлагает использовать логическую резервную базу данных Oracle Data Guard. Такой подход позволяет минимизировать остановку в обслуживании только на время переключения ролей между основной и резервной базами данных. Эта процедура обновления включает в себя обновление логической резервной базы данных до следующего выпуска, запуск ее в смешанном режиме для проверки работоспособности обновления, изменение роли посредством переключения на обновленную базу данных, а затем обновление старой основной базы данных. При проведении тестирования в смешанном режиме возможна отмена установки обновления и восстановление старого программного обеспечения без потери данных. Для обеспечения защиты данных при этих процедурах можно использовать дополнительную резервную базы данных. Благодаря возможности поочередных обновлений с минимальными задержками Data Guard уменьшает время обслуживания для большинства административных задач, тем самым обеспечивая непрерывную работу системы 24x7 (7 дней в неделю по 24 часа).

Масштабируемость

Oracle Real Application Clusters обладает уникальной технологией масштабирования приложений. Типичный подход без использования кластеров заключается в замене сервера, которому уже не хватает мощности, новым сервером большего размера. Использование технологии RAC является альтернативой наращиванию вычислительной мощности одиночных серверов. Для того, что бы сохранить инвестиции, вложенные в уже имеющееся аппаратное обеспечение, можно просто добавить новый сервер к кластеру (или создать кластер). Приложения, обычно работающие на больших SMP-системах, могут быть переведены на кластеры, состоящие из небольших серверов.

Добавление новых серверов к кластеру, работающему под управлением Oracle Clusterware и RAC, не вызывает прерывания в обслуживании, а новые мощности можно использовать сразу после их подключения. Все серверы кластера должны работать в одинаковых операционных системах и иметь одинаковые версии Oracle, но могут различаться по вычислительной мощности. В настоящее время в мире эксплуатируется множество кластеров различной конфигурации, - начиная от кластеров, состоящих из недорогих серверов с 1-2 процессорами, и, заканчивая кластерами, количество процессоров, в узлах которых исчисляется многими десятками.

Балансировка рабочей нагрузки

Для эффективного использования вычислительных ресурсов и обеспечения требуемого качества выполнения задач приложений, необходимо оптимальное распределение нагрузки между узлами кластера. Oracle Real Application Clusters обладает инновационной технологией распределения нагрузок, которая обеспечивает наилучшую производительность приложений и их высокую доступность на заданной конфигурации.

Пользователи приложений или серверы приложений промежуточного уровня соединяются с базой данных при помощи имени Сервиса. Oracle автоматически распределяет нагрузку пользователей среди множества узлов кластера обслуживающих запрошенный Сервис. Выделяя вычислительные мощности для определенного Сервиса, администраторы баз данных имеют возможность определять, на каких узлах работают клиенты выполняющие тот или иной круг задач. Администраторы для сервиса могут безболезненно добавлять вычислительные мощности при росте требований приложений.

Балансировка соединений

Сетевой стек программного обеспечения Oracle SQL*NET, который обеспечивает взаимодействие между клиентом и сервером баз данных, обладает функцией балансировки нагрузки на уровне соединений. Балансировка нагрузки на уровне соединений осуществляется как на стороне клиента, так и на стороне сервера. Для балансировки нагрузки на стороне клиента необходимо в описании подключения к сервису перечислить все узлы кластера. SQL*NET случайно  выбирает один из серверов. Если выбранный сервер недоступен, то производится попытка подключения к следующему серверу. Балансировка нагрузки на стороне сервера производится прослушивающим процессом (LISTENER). Каждый прослушивающий процесс получает информацию от всех экземпляров кластера об обслуживаемых Сервисах и о качестве их выполнения. В зависимости от целей, определенной для конкретного Сервиса, прослушивающий процесс выбирает экземпляр, наиболее точно подходящий для данной задачи, и производит с ним соединение.

Рассылка рекомендаций по балансировке нагрузки

Нагрузка сервера базы данных может изменяться с течением временем, также как может изменяться и конфигурация кластера, поэтому важно создавать соединения с базами данных и производить распределение работы внутри пулов соединений на основе самой оперативной информации. Real Application Clusters начиная с Oracle 10g Relese 2 поддерживает механизм расчета баланса нагрузки - Load Balancing Advisory. RAC постоянно производит мониторинг качества выполнения Сервиса для каждого экземпляра. Эта информация протоколируется в автоматическом архиве рабочей нагрузки (Automatic Workload Repository). На основе запротоколированной информации производится анализ, результаты которого затем передаются приложениям при помощи событий FAN. В событиях FAN содержится текущее качество выполнения Сервисов и рекомендательная информация о том, какой процент заданий должен направляться на каждый экземпляр.


Интегрированные клиенты Oracle используют эти события для распределения нагрузки запросов от приложений. Без использования FAN большинство пулов соединений производят выбор соединения для выполнения запроса последовательно или случайным образом. При помощи событий FAN и рекомендациям по балансировке нагрузки пул соединений может выбирать соединение, обеспечивающее на данный момент наилучшее обслуживание. Пулы соединений Oracle JDBC, ODP.NET и OCI производят балансировку нагрузки с использованием FAN-рекомендаций.