Oracle Parallel Server
Oracle Parallel Server (OPS) — это технология кластеризации баз данных, разработанная корпорацией Oracle, которая позволяет нескольким экземплярам СУБД Oracle одновременно обращаться к одной и той же базе данных, хранящейся на общем дисковом массиве. OPS является предшественником более современных решений Oracle Real Application Clusters (RAC) и относится к классу систем с архитектурой «разделяемый диск» (shared-disk).
История
Технология Oracle Parallel Server была впервые представлена в 1990-х годах, в эпоху версий Oracle 6 и Oracle 7. Основной целью разработки было повышение доступности и производительности систем баз данных за счёт использования нескольких серверов, работающих параллельно. В отличие от архитектуры «разделяемый ничего» (shared-nothing), где каждый узел владеет своей частью данных, OPS предполагал, что все узлы имеют физический доступ ко всем данным через общую дисковой подсистему (SAN, NAS или прямое подключение).
В версии Oracle 8i технология получила значительные улучшения, включая поддержку большего числа узлов и более эффективные механизмы блокировок. Однако главным недостатком OPS оставалась сложность управления когерентностью кэша (cache fusion) — данные, модифицированные на одном узле, не были немедленно доступны другим узлам, что приводило к необходимости частых операций с диском и снижению производительности в некоторых сценариях.
В 2001 году, с выходом Oracle 9i, OPS был заменён на Oracle Real Application Clusters (RAC), который внедрил технологию кэш-фьюжн (Cache Fusion), позволяющую передавать блоки данных между узлами через высокоскоростное межсоединение (interconnect) без обращения к диску. Несмотря на это, OPS оставался в эксплуатации на многих предприятиях до середины 2000-х годов, пока не был полностью вытеснен RAC.
Архитектура
Принцип работы
OPS работает по принципу «множество экземпляров — одна база данных». Каждый экземпляр (instance) — это набор процессов Oracle и памяти (SGA), запущенный на отдельном сервере (узле кластера). Все экземпляры подключены к одному и тому же набору файлов данных на общем дисковом массиве. Для координации доступа к данным используется распределённый менеджер блокировок (Distributed Lock Manager, DLM), который встроен в ядро Oracle.
Компоненты
- Экземпляры (Instances) — каждый узел кластера запускает свой экземпляр Oracle, который имеет собственную системную глобальную область (SGA) и фоновые процессы.
- Общая дисковая подсистема (Shared Storage) — все файлы базы данных (datafiles, redo logs, control files) хранятся на устройстве, доступном всем узлам. Обычно это SAN-массив или NAS.
- Межсоединение (Interconnect) — высокоскоростная сеть (например, Gigabit Ethernet или InfiniBand) для передачи сообщений DLM и данных кэш-фьюжн (в OPS — только для DLM, кэш-фьюжн не использовался).
- Менеджер блокировок (DLM) — распределённый сервис, управляющий блокировками на уровне блоков данных. Каждый экземпляр может запрашивать блокировки у DLM, который распределяет их между узлами.
Отличия от RAC
Главное отличие OPS от RAC заключается в механизме передачи данных между узлами. В OPS, если один экземпляр модифицирует блок данных, другой экземпляр, желающий прочитать этот же блок, вынужден считывать его с диска (так как кэш первого экземпляра не передаётся). В RAC используется Cache Fusion, который позволяет передавать блоки данных между SGA узлов через interconnect, что значительно снижает нагрузку на дисковую подсистему и повышает производительность.
Преимущества и недостатки
Преимущества
- Высокая доступность (High Availability) — при отказе одного узла кластера другие экземпляры продолжают работу, обеспечивая доступ к базе данных.
- Масштабируемость (Scalability) — возможность добавления новых узлов для увеличения вычислительной мощности без остановки системы.
- Горизонтальное масштабирование — OPS позволял использовать несколько недорогих серверов вместо одного мощного мэйнфрейма.
Недостатки
- Сложность управления — требовалась тщательная настройка DLM и межсоединения, а также мониторинг конфликтов блокировок.
- Проблемы с производительностью — из-за необходимости частых операций с диском при работе с разделяемыми данными производительность могла снижаться при высокой конкуренции.
- Ограниченная поддержка приложений — не все приложения были оптимизированы для работы в кластерной среде, что требовало дополнительной настройки.
- Зависимость от общего хранилища — единая точка отказа в виде дискового массива или SAN-сети.
Применение
Oracle Parallel Server использовался в крупных корпоративных системах, где требовалась высокая доступность и масштабируемость. Типичные сценарии применения включали:
- Финансовые системы — банковские транзакционные системы, где простой недопустим.
- Телекоммуникации — биллинговые системы и системы управления сетями.
- Электронная коммерция — интернет-магазины с высокой нагрузкой.
- Государственные информационные системы — реестры, базы данных граждан.
В России OPS применялся в ряде крупных организаций, таких как Сбербанк, РЖД и некоторые операторы связи, но с переходом на RAC и другие современные технологии его использование сократилось.
Примеры конфигураций
Типичная конфигурация OPS включала:
- 2-8 узлов (серверов) на базе UNIX (Solaris, HP-UX, AIX) или Linux.
- Общее хранилище на базе SAN (Fibre Channel) или NAS (NFS).
- Высокоскоростное межсоединение (Gigabit Ethernet или Myrinet).
- Версия Oracle — 7.3, 8i или 9i (в режиме совместимости).
Критика и наследие
OPS критиковался за сложность настройки и эксплуатации, а также за неэффективность при работе с высококонкурентными транзакциями. Многие администраторы баз данных отмечали, что для достижения хорошей производительности требовалось тщательное проектирование схемы данных и оптимизация запросов. Тем не менее, OPS заложил основы для развития RAC, который стал стандартом де-факто для кластеризации Oracle.
В настоящее время OPS считается устаревшей технологией, и Oracle рекомендует мигрировать на Oracle RAC (начиная с версии 9i) или использовать другие решения, такие как Oracle Data Guard для обеспечения высокой доступности.
Источники
- Oracle Corporation. «Oracle Parallel Server Concepts and Administration Guide» (версия 8i).
- Oracle Corporation. «Oracle Real Application Clusters Administration Guide» (версия 9i).
- Б. К. Раджараман, «Oracle Parallel Server: архитектура и управление» (1999).
- Документация Oracle по миграции с OPS на RAC (2002).
- Статьи в журнале «Oracle Magazine» (1998–2001).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →