Открыть сервис

Oracle Database

Oracle Database — это система управления реляционными базами данных (СУБД), разрабатываемая корпорацией Oracle Corporation. Относится к классу объектно-реляционных СУБД, поддерживает многопользовательский доступ, транзакционность, масштабируемость и развёртывание на различных аппаратных платформах. Является одной из наиболее распространённых и коммерчески успешных СУБД в мире, наряду с Microsoft SQL Server, IBM Db2 и PostgreSQL.

История

Разработка Oracle Database началась в конце 1970-х годов под руководством Ларри Эллисона, Боба Майнера и Эда Оутса. Первая версия, Oracle 2 (1979), была написана на языке ассемблера для компьютеров PDP-11 и стала первой коммерческой СУБД, использующей язык SQL. В 1983 году вышла версия Oracle 3, полностью переписанная на язык Си, что обеспечило кроссплатформенность. В 1984 году вышла Oracle 4, поддерживающая перенос на VAX/VMS и Unix. Версия 5 (1985) представила поддержку клиент-серверной архитектуры. Oracle 6 (1988) ввела блокировку на уровне строк, журнал предзаписи (redo log) и параллельные запросы. Версия 7 (1992) добавила поддержку хранимых процедур, триггеров и репликации. Oracle 8 (1997) стала объектно-реляционной, включив поддержку пользовательских типов данных. Oracle 9i (2001) представила Real Application Clusters (RAC) — кластерную архитектуру для отказоустойчивости и масштабирования. Oracle 10g (2004) ввела автоматическое управление памятью и сеткой (Grid). Oracle 11g (2007) добавила сжатие данных, автоматизированное управление хранилищем и Real Application Testing. Oracle 12c (2013) представила многопользовательскую архитектуру (Multitenant) и облачную интеграцию. Oracle 18c (2018) и Oracle 19c (2019) стали долгосрочными релизами (LTS). Oracle 21c (2021) ввела поддержку JSON-документов, блокчейн-таблиц и машинного обучения. Последняя версия, Oracle 23c (2023), добавила поддержку векторных данных, графовые запросы и улучшенную безопасность.

Архитектура

Физическая структура

Oracle Database состоит из файлов данных (data files), файлов журнала (redo log files) и управляющих файлов (control files). Файлы данных хранят таблицы, индексы и другие объекты. Журналы предзаписи фиксируют все изменения данных для восстановления после сбоев. Управляющие файлы содержат метаданные о структуре базы данных. Дополнительно используются временные файлы (temp files) для сортировки и временных таблиц, а также файлы архивных журналов (archive logs) для долгосрочного резервирования.

Логическая структура

Логически база данных делится на табличные пространства (tablespaces), которые группируют объекты по функциональности. Каждое табличное пространство состоит из сегментов (segments), экстентов (extents) и блоков (blocks). Сегменты соответствуют объектам (таблицам, индексам). Экстенты — непрерывные группы блоков. Блоки — минимальные единицы ввода-вывода, размером от 2 до 32 КБ.

Память и процессы

Oracle Database использует системную глобальную область (System Global Area, SGA) и программную глобальную область (Program Global Area, PGA). SGA — общая память, содержащая буферный кеш (buffer cache), кеш разделяемого пула (shared pool), кеш журнала (redo log buffer) и другие компоненты. PGA — память, выделяемая каждому серверному процессу. Основные фоновые процессы: PMON (мониторинг процессов), SMON (мониторинг системы), DBWR (запись данных), LGWR (запись журналов), CKPT (контрольные точки) и ARCn (архивация журналов).

Классификация и редакции

Oracle Database выпускается в нескольких редакциях, различающихся функциональностью и лицензированием:

Также существуют специализированные редакции: Oracle Database Standard Edition One (снята с поддержки), Oracle Database Enterprise Edition for Cloud, Oracle Database Free (бесплатная для разработки, ограничена 2 ГБ RAM и 12 ГБ данных).

Основные возможности

Многопользовательская архитектура (Multitenant)

Начиная с версии 12c, Oracle Database поддерживает архитектуру, в которой один контейнер (Container Database, CDB) может содержать множество подключаемых баз данных (Pluggable Databases, PDB). Это упрощает администрирование, изоляцию ресурсов и миграцию между средами. Каждая PDB выглядит как отдельная база данных для приложений.

Real Application Clusters (RAC)

Технология кластеризации, позволяющая нескольким экземплярам Oracle Database одновременно обращаться к одной и той же базе данных, распределённой по нескольким серверам. Обеспечивает высокую доступность, масштабирование нагрузки и отказоустойчивость. Поддерживает до 64 узлов в кластере.

Data Guard

Решение для резервирования и аварийного восстановления, создающее одну или несколько физических или логических реплик (standby) базы данных. Поддерживает синхронную и асинхронную репликацию, автоматическое переключение (failover) и ручное переключение (switchover). Включает Active Data Guard, позволяющий использовать реплику для чтения.

Partitioning

Механизм разделения больших таблиц и индексов на более мелкие физические части (партиции) по заданному ключу (диапазон, список, хэш, композитные методы). Улучшает производительность запросов, упрощает управление данными (архивирование, удаление старых партиций) и ускоряет операции DML.

In-Memory

Опциональная опция, позволяющая хранить таблицы и столбцы в оперативной памяти в колоночном формате для ускорения аналитических запросов. Поддерживает гибридный режим: строковое хранение для OLTP и колоночное для OLAP. Включена в Enterprise Edition.

Advanced Security

Набор функций шифрования данных: шифрование на уровне столбцов (Transparent Data Encryption, TDE), шифрование сетевого трафика (Oracle Net Services), маскирование данных (Data Redaction) и управление ключами (Oracle Key Vault). Соответствует стандартам PCI DSS, HIPAA, GDPR.

Automatic Storage Management (ASM)

Интегрированная файловая система и менеджер томов для Oracle Database, оптимизированный для работы с дисковыми массивами. Обеспечивает распределение данных по дискам, балансировку нагрузки, зеркалирование и автоматическое восстановление после сбоев дисков.

Resource Manager

Инструмент управления ресурсами (CPU, I/O, память) между сессиями, пользователями и приложениями. Позволяет задавать приоритеты, ограничивать потребление и гарантировать минимальные ресурсы для критических задач.

Применение

Oracle Database широко используется в корпоративных информационных системах, банковском секторе, телекоммуникациях, государственных учреждениях, здравоохранении, розничной торговле и логистике. Типичные сценарии:

Инструменты администрирования

Критика

Oracle Database критикуется за высокую стоимость лицензирования, особенно для Enterprise Edition, а также за сложность администрирования и настройки. Лицензионная политика Oracle Corporation (организация признана нежелательной в РФ? — нет официального статуса) неоднократно подвергалась критике за непрозрачность и агрессивные методы аудита. В России после введения санкций 2022 года использование Oracle Database в государственных и критически важных информационных системах сокращается в пользу отечественных СУБД (PostgreSQL, CУБД на его основе, например, Postgres Professional, или СУБД «КУРС»). Также отмечается, что Oracle Database менее гибка в облачных средах по сравнению с PostgreSQL или MySQL.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →