Что такое oracle
Перейти к содержимому

Что такое oracle

  • автор:

База данных

Сервисы и продукты для баз данных Oracle предлагают заказчикам высокопроизводительные и оптимизированные по стоимости версии Oracle Database, самой передовой в мире конвергентной многомодельной системы управления базами данных, а также резидентные базы данных NoSQL и MySQL. Oracle Autonomous Database, доступная локально через Oracle Cloud@Customer или в Oracle Cloud Infrastructure, позволяет заказчикам упростить среды реляционных баз данных и сократить число нагрузок управления.

Анонс Oracle Database@Azure

В рамках расширенного сотрудничества между компаниями Oracle и Microsoft, о котором объявили Ларри Эллисон (Larry Ellison) и Сатья Наделла (Satya Nadella), мы будем предоставлять сервисы баз данных Oracle в Oracle Cloud Infrastructure в Microsoft Azure.

  • Анонс Oracle Database 23c «Лучшие инновации в области информатики за последние 20 лет» для облачного и локального развертывания с технологией JSON Relational Duality и другими функциями нового поколения.

СУБД Oracle Database 19c теперь доступна на процессорах Arm Клиенты СУБД Oracle Database 19c теперь могут использовать экономичные, энергоэффективные серверные платформы на базе процессоров Arm.

Oracle называют лидером магического квадранта Gartner в категории «Системы управления облачными базами данных» за 2022 год Компания Oracle была названа лидером магического квадранта Gartner за 2022 год в категории «Системы управления облачными базами данных» и получила наивысшую оценку в 2022 году в номинации «Критически важные возможности облачных систем управления базами данных для сценариев операционного использования».

Почему стоит выбрать СУБД Oracle Database для работы с данными?

IDC: Oracle Autonomous Database обеспечивает окупаемость инвестиций на 417%

Исследование независимых аналитиков показывает, что СУБД Oracle Autonomous Database предлагает значительную экономию и 417 % рентабельности инвестиций в течение пяти лет, а окупаемость составляет всего 5 месяцев. Читать отчет IDC (PDF)

Защита от утечки данных
  • IDC: преимущества автономной базы данных Oracle в области безопасности (PDF)
  • Практика — семинар по основам безопасности баз данных
Использование единой базы данных для всех типов данных и рабочих нагрузок
  • Смотреть видео (2:49)
  • Практика — семинар по разработке приложений с использованием JSON, XML, пространственных и графических данных
Развертывание в любом месте
  • Oracle делает облако доступным для вас (PDF)
  • Практика — семинар по контейнерной разработке с Docker в автономной базе данных
  • Варианты облачного развертывания
Упрощение разработки приложений

Упростите разработку и развертывание корпоративных приложений с помощью самой комплексной платформы баз данных, включающей как приложения, так и службы данных. Создавайте приложения SaaS на основе CI/CD, многопользовательской базы данных, Kubernetes, нативных облачных технологий и технологий с минимальным программированием. Узнайте о возможностях

Обеспечение суверенитета данных и горизонтального масштабирования
  • Подробнее об Oracle Sharding
  • Munich Re HealthTech выполняет правила размещения данных с помощью Oracle Sharding
  • Как Oracle создает приложения интернет-масштаба (43:48)

Какая база данных Вам подходит?

Сокращение времени на управление базами данных

С Oracle Autonomous Database процессы работы и защиты СУБД Oracle Database становятся проще, а заказчик получает высочайший уровень производительности, масштабируемости и доступности.

Продукты
  • Autonomous Data Warehouse
  • Автономная обработка транзакций
  • Autonomous JSON Database
  • Oracle APEX Application Development

Ускорение работы до трех раз

Запуск СУБД Oracle Database на платформе Oracle Exadata, самой быстрой платформе для СУБД, позволяет заказчикам увеличить скорость транзакций, ускорить бизнес-аналитику и упростить управление ИТ. Oracle Exadata доступна в центрах обработки данных заказчиков и в Oracle Cloud Infrastructure, что позволяет заказчикам достигать высочайшего уровня производительности управляемых ими и автономных СУБД Oracle Autonomous Database.

Продукты
  • Autonomous Database
  • Oracle Exadata Database Service
  • Exadata Cloud@Customer
  • Oracle Exadata X9M

Лидирующая в отрасли технология СУБД Oracle Database в центрах обработки данных заказчиков

СУБД Oracle Database можно развертывать локально, когда у заказчиков возникают проблемы с размещением данных и сетевой задержкой. Развертывание Cloud@Customer позволяет размещать в ЦОД заказчика новейшие технологии Oracle Cloud, включая Oracle Exadata и Oracle Autonomous Database.

Продукты
  • Exadata Cloud@Customer
  • Autonomous Database on Exadata Cloud@Customer
  • Oracle Exadata X9M
  • СУБД Oracle Database 19c

Координация обновлений баз данных и приложений

Заказчики с приложениями, зависящими от конкретных версий БД Oracle, имеют полный контроль над выполняемыми версиями и при изменении этих версий.

Продукты
  • Oracle Exadata Database Service
  • Oracle Base Database Service

Ускорьте разработку JSON-ориентированных приложений

СУБД Oracle Database полностью поддерживает разработку схематичных приложений с помощью модели данных JSON для повышения производительности разработчиков. Используйте API Oracle Database для MongoDB, чтобы разрабатывать и запускать приложения MongoDB с Oracle Database — локально и в облаке.

Продукты
  • Autonomous JSON Database
  • Автономная обработка транзакций
  • СУБД Oracle Database 19c
  • Oracle NoSQL Database

Самая популярная в мире база данных с открытым кодом в Oracle Cloud

MySQL HeatWave — полностью управляемый сервис баз данных на базе интегрированного акселератора запросов в памяти, HeatWave. Это единственный облачный сервис баз данных, сочетающий транзакции, аналитику и машинное обучение в едином решении MySQL Database, которое предоставляет аналитику в режиме реального времени без сложности, задержки или затрат, связанных с дублированием на ETL. Интерфейс доступен для OCI и AWS.

Продукты

Отклик с минимальной задержкой и гибкое масштабирование

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

Продукты

Oracle Cloud Database

Действительно автоматизированное решение для баз данных

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

Продукты
  • Autonomous Data Warehouse
  • Autonomous JSON Database
  • Автономная обработка транзакций
  • Oracle APEX Application Development
СУБД Oracle Database

СУБД Oracle Database лидирует на рынке по производительности, масштабируемости, надежности и безопасности — как в локальной среде, так и в облаке.

Продукты
  • СУБД Oracle Database 19c
  • СУБД Oracle Database 21c
Создание, масштабирование и защита баз данных в облаке

Oracle Base Database Service позволяет компаниям создавать полнофункциональные экземпляры СУБД Oracle Database и управлять ими в Oracle Cloud Infrastructure (OCI). ИТ-команды предоставляют базы данных на виртуальных машинах с блочными хранилищами, что обеспечивает экономически эффективные облачные сервисы баз данных с возможностью выбора версий СУБД Oracle Database.

Продукты
Лучшая локальная система СУБД Oracle Database

Oracle Exadata — это комплексное решение, повышающее производительность, масштабируемость, безопасность и доступность корпоративных баз данных Oracle. Oracle Exadata содержит более 60 уникальных функций, таких как перенос Smart Scan SQL, которые разработаны вместе с СУБД Oracle Database. Это позволяет ускорить обработку операций в режиме онлайн, анализ данных и машинное обучение. Oracle Exadata также сокращает капитальные затраты и затраты на управление, позволяя ИТ-отделам консолидировать сотни баз данных в одной системе. Компании могут развертывать Oracle Exadata в локальной среде, в Oracle Cloud Infrastructure или в качестве решения Cloud@Customer, а также использовать Oracle Autonomous Database для упрощения и ускорения цифровых трансформаций.

Продукты
Возможности Oracle Exadata Cloud в центрах обработки данных заказчиков

Решение Oracle Exadata Cloud@Customer объединяет производительность Oracle Exadata с удобством, гибкостью и доступностью управляемого сервиса баз данных в ЦОД заказчика. Это самый простой способ перемещения существующих баз данных Oracle в облако, так как он обеспечивает полную совместимость с существующими системами Oracle Exadata и Oracle Exadata Cloud Service. Oracle Exadata Cloud@Customer также отвечает требованиям заказчиков в отношении суверенитета данных и подключения с малой задержкой к существующим ресурсам центра обработки данных. Это позволяет достичь более высокой консолидации баз данных по сравнению с другими локальными облачными сервисами баз данных.

Продукты
Надежное и максимально простое управление данными

Oracle Exadata — это высокодоступная и высокопроизводительная, а также самая безопасная архитектура для работы с СУБД Oracle Database. Благодаря Oracle Exadata вы можете сократить площадь центра обработки данных и ускорить вывод на рынок критически важных нагрузок.

Продукты
Запускайте сервисы Oracle Database в Microsoft Azure

Oracle Database@Azure позволяет организациям выполнять рабочие нагрузки где угодно, осуществлять модернизацию и внедрять инновации, используя сервисы Oracle и Azure, а также упрощает закупки облачных ресурсов и управление ими. Заказчики могут комбинировать выбранные ими сервисы Azure с Oracle Autonomous Database и Oracle Exadata Database Service, сервисами OCI, глубоко интегрированными с центрами обработки данных Azure и размещенными в них.

Возможности
  • Наивысший уровень производительности, масштабирования и доступности СУБД Oracle Database за счет использования инфраструктуры Oracle Exadata.
  • Оптимальное сочетание цен и возможностей в OCI, включая Oracle Real Application Clusters.
  • Удобство, безопасность и малые задержки единой операционной среды в Azure, в том числе федеративное управление идентификационными данными и доступ для сервисов баз данных с использованием Microsoft Entra ID.
  • Журналы, метрики и события сервиса СУБД Oracle Database доступны непосредственно в Azure для упрощения мониторинга и устранения неполадок.
  • Возможность приобретения через Azure Marketplace с действующими обязательствами Azure и использования существующих лицензий СУБД Oracle Database, а также неограниченных лицензионных соглашений.

Что такое Oracle?

Oracle – это система управления базами данных (СУБД), которая была создана одноименной компанией. Её основал Ларри Эллисон, который родился в США 1994 года от девятнадцати летней еврейки, муж которой ее бросил еще до появления ребенка. В конце семидесятых этот человек создал первую версию системы, ее назвали Oracle версия 2. Именование продукта было взято из одного из проектов ЦРУ, остановка от работы над ним заставила Ларри подыскать работу получше. Стартовая версия сего продукта была написана на assembler, который вскоре заменили. Был выбран язык Си для написания последующих версий, ибо Паскаль был дороже по лицензии, а про Аду ничего не известно, хоть и была популярной в те времена.

Ларри очень был категоричным к СССР, писав в 1988 году, что в матушку-Россию эта СУБД попадет лишь с ядерными бомбами, ведь Oracle была на счету Министерства обороны США. Первая незаконная русификация СУБД очень огорчила дядю Ларри, который принял меры к наказанию этих ребят-энтузиастов. Но в настоящее время очень активно используются продукты этой компании как Java, Virtual Box и Oracle DataBase.

Смешной факт таков, что компания очень «эффективно» боролась с терроризмом, ведь любой пользователь кто бы ни качал с сайта версию программы, обязан был поставить галочку под соглашением, что он не террорист и не будет использовать программу для незаконных действий.

Основное что известно об этой компании, что она в 2009 году поглотила Sun Microsystems вместе с правами на язык программирования Java и другими пирожками. Уволили с Ларри-несогласных людей, позакрывав кучу проектов, например OpenSolaris. Хотел придушить еще OpenOffice, но это у него, к счастью, не получилось. Довольствовался лишь сменой названия на LibreOffice.

Спустя 10 лет со времени создания корпорации Ларри все еще проводил собеседования абсолютно с каждым новым сотрудником, пришедшем в эту компанию.

На сегодняшний день компания Oracle является лидером на рынке разработки ПО для управления данными и вторым по масштабу независимым производителем различного полезного софта. Трудно представить программиста на Java, который ничего не знает об этой корпорации. Но их главный продукт Oracle DataBase занимает достойное место среди различных систем управления базами данных, которые используются чуть ли не на каждом предприятии. А основатель компании Ларри Элиссон в 2010 году был на шестой позиции в мировом рейтинге миллиардеров. Его состояние измерялось в двадцать семь миллиардов долларов США, и, судя по темпам развития компании, его достаток будет лишь расти.

База данных Oracle. Структура и основные понятия СУБД Oracle

Oracle Database — это объектно-реляционная СУБД (система управления базами данных), созданная компанией Oracle. В настоящее время она имеет множество разных версий и типов. Однако в этой статье мы поговорим не о видах баз данных Oracle, а о структуре и основных концепциях, которые относятся к СУБД Oracle Database. Поняв архитектуру СУБД Oracle, вы заложите фундамент, необходимый для понимания прочих средств (а они весьма обширны), предоставляемых базой данных Oracle.

Базы данных Oracle: экземпляры и сущности

СУБД Oracle Database включает в себя физические и логические компоненты. Особого упоминания заслуживает понятие экземпляра. Замечено, что некоторые используют термины «база данных» и «экземпляр» в качестве синонимов. Да, это взаимосвязанные, но всё же разные вещи. База данных в терминологии Oracle — это физическое хранилище информации, а экземпляр — это программное обеспечение, которое работает на сервере и предоставляет доступ к информации, содержащейся в базе данных Oracle. Экземпляр исполняется на конкретном сервере либо компьютере, в то самое время как база данных хранится на дисках, подключённых к этому серверу:

instans_and_Oracle_Database_1-20219-067a61.jpg

При этом база данных Oracle является физической сущностью, состоящей из файлов, которые хранятся на дисках. В то же самое время, экземпляр – это сущность логическая, состоящая из структур в оперативной памяти и процессов, которые работают на сервере. Экземпляр может являться частью только одной базы данных. При этом с одной базой данных бывает ассоциировано несколько экземпляров. Экземпляр ограничен по времени жизни, тогда как БД, условно говоря, может существовать вечно.

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

Если упрощённо, то экземпляр — это мост к базе данных, а сама БД – это остров. Когда экземпляр запущен, мост работает, а данные способны попадать в базу данных Oracle и покидать её. Если мост перекрыт (экземпляр остановлен), пользователи не могут обращаться к базе данных, несмотря на то, что физически она никуда не исчезла.

Структура базы данных Oracle

База данных Oracle включает в себя: — табличные пространства; — управляющие файлы; — журналы; — архивные журналы; — файлы трассировки изменения блоков; — ретроспективные журналы; — файлы резервных копий (RMAN).

Табличные пространства Oracle

Любые данные, которые хранятся в базе данных Oracle, просто обязаны существовать в каком-либо табличном пространстве. Под табличным пространством (tablespace) понимают логическую структуру, то есть вы не сможете попросить ОС показать вам табличное пространство Oracle.

При этом каждое табличное пространство включает в себя физические структуры, называемые файлами данных (data files). Одно табличное пространство Oracle способно содержать один либо несколько файлов данных, в то время как каждый файл данных может принадлежать лишь одному tablespace. Создавая таблицу, мы можем указать, в какое именно табличное пространство мы её поместим — Oracle находит для неё место в каком-нибудь из файлов данных, которые составляют указанное табличное пространство.

На рисунке ниже вы можете посмотреть на соотношение между файлами данных и табличными пространствами в базе данных Oracle.

tablespaces_data_files_Oracle_1-20219-802832.jpg

Создавая новую таблицу, мы можем поместить её в табличное пространство DATA1 либо DATA2. Таким образом, физически наша таблица окажется в одном из файлов данных, которые составляют указанное табличное пространство.

Файлы базы данных Oracle

База данных Oracle может включать в себя физические файлы 3-х основных типов: • control files — управляющие файлы; • data files — файлы данных; • redo log files — журнальные файлы либо журналы.

Посмотрим на отношения между ними:

oracle_database_files_1-20219-34b3e2.jpg

В управляющих файлах содержится информация о местонахождении других физических файлов, которые составляют базу данных Oracle, — речь идёт о файлах данных и журналов. Также там хранится важная информация о содержимом и состоянии БД Oracle. Что это за информация: • имя базы данных Oracle; • время создания БД; • имена и местонахождение журнальных файлов и файлов данных; • информация о табличных пространствах; • информация об архивных журналах; • история журналов, порядковый номер текущего журнала; • информация о файлах данных в автономном режиме; • информация о резервных копиях, контрольных точках, копиях файлов данных.

При этом функция управляющих файлов не ограничивается хранением важной информации, нужной при запуске экземпляра, — полезны они и в процессе удалении БД Oracle. К примеру, уже с версии Oracle Database 10g можно посредством команды DROP DATABASE удалить все файлы, которые перечислены в управляющем файле БД, включая сам управляющий файл.

Инициализация СУБД Oracle

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

Как правило, инициализационные параметры хранятся в файле параметров инициализации экземпляра (обычно это INIT.ORA) либо, начиная с Oracle9i, в репозитории, называемом файлом параметров сервера (SPFILE). С выходом каждой новой версии Oracle число обязательных параметров инициализации уменьшается.

Кстати, в дистрибутиве Oracle можно найти пример файла инициализации, который пригоден для запуска базы данных. Также можно воспользоваться специальной программой Database Configuration Assistant (DCA) — она подскажет обязательные значения.

Вот, к примеру, как выглядит список обязательных параметров инициализации для СУБД Oracle Database 11g: 1. Местонахождение управляющих файлов — CONTROLFILES . 2. Локальное имя БД — DB_NAME . 3. Имя домена БД Oracle — DBDOMAIN . 4. Местонахождение архивного журнала — LOGARCHIVEDEST . 5. Параметр, который включает архивирование журналов — LOG_ARCHIVE_DEST_STATE . 6. Местонахождение области быстрого восстановления — DBRECOVERYFILEDEST . 7. Наибольший размер области быстрого восстановления БД Oracle в байтах — DBRECOVERYFILEDESTSIZE . 8. Размер блока БД в байтах — DBBLOCKSIZE . 9. Наибольшее количество процессов ОС, которые обслуживают одновременный доступ к СУБД Oracle — PROCESSES . 10. Наибольшее число сеансов работы с БД — SESSIONS . 11. Наибольшее количество открытых курсоров в базе данных — OPEN_CURSORS . 12. Наименьшее количество разделяемых серверов базы данных Oracle — SHARED_SERVERS . 13. Имя удалённого прослушивателя — REM O TE_LI S TENER . 14. Версия СУБД Oracle, с которой должна поддерживаться совместимость — COMPATIBLE . 15. Размер области памяти, которая автоматически выделяется для PGA и SGA экземпляра — MEMORY_TARGET . 16. Время ожидания возможности установить монопольную блокировку до отправки сообщения об ошибке (для команд DDL) — DDLLOCKTIMEOUT . 17. Язык, который определён в подсистеме поддержки национальных языков для базы данных Oracle — NLS_LANGUAGE . 18. Территория, которая определена в подсистеме поддержки национальных языков для БД — NLS_TERRITORY .

DataBase_970x550-20219-24a7f8.png

Более подробную информацию смотрите в официальной документации для СУБД Oracle Database.

База данных Oracle DB: как она устроена и чем хороша

Разбираемся, как работает популярная СУБД от Oracle, какие у неё есть фишки и чем она отличается от других баз данных.

Иллюстрация: Clay Banks / Unsplash / Annie для Skillbox Media

Максим Сафронов

Максим Сафронов

Автор, редактор, IT-журналист. Рассказывает о новых технологиях, цифровых профессиях и полезных инструментах для разработчиков. Любит играть на электрогитаре и программировать на Swift.

Чтобы сайтам и приложениям было удобно работать с данными, используют СУБД — системы управления базами данных. О том, как они работают, мы писали в предыдущей статье. А сегодня будем препарировать СУБД от Oracle — всё ещё самую популярную базу данных в мире для энтерпрайза по версии TOPDB. Вот о чём поговорим в этой статье:

  • Коротко: для чего нужны СУБД в целом
  • Что такое Oracle Database
  • Как она работает
  • Из чего состоит
  • В чём сила Oracle DB
  • На каком языке пишут запросы
  • Версии и редакции Oracle DB
  • Почему она стала популярной
  • Выводы: кому и зачем нужна Oracle DB сейчас

Коротко: для чего нужны СУБД

Всё, что вы видите в интернете, состоит из данных: текста, фотографий, мемов, постов, переписок и так далее. Чтобы облегчить себе жизнь, разработчики придумали хранить всю эту информацию в базах данных. Но сама по себе база данных мало что умеет — по сути, это текстовый файлик, лежащий на сервере.

Представьте, что вы пришли за какой-то книгой в библиотеку. Если просто начать кричать куда-то в стеллажи: «Дай мне „Гарри Поттера“», ничего не случится — разве что выйдет высоченный «товарищ» Джона Уика и придётся срочно искать томик русских народных сказок. Но если обратиться к библиотекарю, эффект будет гораздо лучше: он посмотрит каталог и быстро принесёт нужные книги.

Если переложить нашу аналогию на язык машин, то библиотекарь — это как раз система управления базами данных. И вот для чего она может пригодиться:

  • добавлять в базу новые данные;
  • искать данные по запросу пользователя;
  • вносить в данные изменения;
  • защищать базы данных от взлома и копирования;
  • создавать резервные копии и восстанавливать данные после сбоя;
  • сортировать данные с помощью фильтров и учитывая структуру БД.

А теперь займёмся нашей Oracle DB.

Что такое Oracle Database

Oracle DB — это культовая СУБД, разработанная ещё в семидесятые программистами Ларри Эллисоном и Бобом Майнером (которые, к слову, до этого работали на ЦРУ). Культовой её считают потому, что это первая коммерчески успешная СУБД, работающая по реляционной модели.

«Реляционная» означает, что все записи в базе данных упорядочены в виде таблиц. Раньше было не так: банки и крупные госучреждения хранили данные как попало — во множестве разных файликов без единой системы. Связи между файликами тоже не было — то есть если у какого-то клиента менялся, например, номер телефона, приходилось менять это вручную и сразу везде.

А тут пришли очкастые программисты из Oracle и, вооружившись модной тогда реляционной моделью, разложили всё по полочкам. А точнее, по таблицам. Идея в том, что таблицы в реляционных БД связаны между собой специальными ключами — если добавить или удалить что-то в одной, все остальные таблицы об этом узнают и сами обновятся.

Вот как выглядит реляционная база данных на примере университетской ведомости с оценками:

Обратите внимание: в таблице «Оценки за экзамены» нет данных о студентах и предметах — только ссылки на их ID. Если Вася Иванов, к примеру, перейдёт в другую группу, нам нужно будет поправить это только в одной таблице — «Студенты». Во всех остальных таблицах данные обновятся автоматически.

Со временем данные стали усложняться и простых записей в табличках стало не хватать. Поэтому Oracle добавила своей СУБД фишки объектной модели. Теперь появилась возможность хранить данные в виде объектов — сущностей, которые могут содержать много разных свойств и передавать их друг другу.

Например, вот как будет выглядеть та же самая база данных с оценками, если записи в ней организовать по объектной модели:

Формально Oracle DB правильнее называть объектно-реляционной СУБД. То есть она позволяет реализовать сразу два подхода: хочешь простой сайт или блог — используй реляционные таблички; нужна сложная логика для какой-нибудь ERP-системы — можно заморочиться с объектной структурой.

Как работает Oracle Database

В основе работы Oracle DB лежит клиент-серверная модель. Суть у неё простая:

  • Есть сервер, где хранятся данные, и система, которая ими управляет.
  • Есть клиент, который хочет эти данные получить или, наоборот, записать. В интернете клиентом выступает обычный браузер — он умеет превращать клики пользователей на сайте в серверные запросы.

Фишка клиент-серверной модели в том, что вся работа с данными вынесена на сервер — пользователю не нужно держать у себя на компьютере копию базы данных. Достаточно скачать приложение-клиент и пулять себе запросы к серверу в любое время дня и ночи, чтобы получить нужные мемы с котами.

На самом сервере тоже всё хитро: помимо данных, которые физически лежат на диске, есть ещё процессы, которые этими данными управляют. Набор всех процессов в СУБД Oracle DB называют экземпляром — по сути, это программная оболочка для файлов, которая существует только в оперативке сервера. Если выключить сервер из розетки, экземпляр удалится, а сами файлы с данными останутся.

Допустим, вы зашли на популярный маркетплейс, чтобы купить кроссовки. Вот как будет выглядеть серверная логика, если под капотом маркетплейса Oracle DB:

  • Вы кладёте кроссовки в корзину и нажимаете кнопку «Купить».
  • Ваш браузер посылает запрос о покупке на сервер.
  • На сервере работает специальный драйвер Oracle Net Services — он видит запрос от браузера и выделяет под него отдельный процесс.
  • Серверный процесс «звонит» экземпляру БД и говорит: «Эй, есть задачка от клиента, возьмёшь в работу асап?»
  • Экземпляр такой: «Ага» — и запускает процесс записи в базу данных.
  • В результате в базе данных появляется строчка «Пользователь ID №1 взял товар ID №2 в таком-то количестве».
  • Когда запись закончена, сервер отправляет по сетям запрос обратно и вы видите сообщение «Спасибо за покупку!».

Всеми этими процессами, начиная от получения запроса на сервере и заканчивая отправкой ответа, как раз и управляет Oracle.

Структура базы данных Oracle

Как мы выяснили, СУБД Oracle состоит из двух сущностей: самой базы данных и её экземпляра. То есть из файлов на диске и процессов в оперативной памяти сервера. Вот чем они различаются:

Управляющий файл. Здесь хранится самая важная информация о БД: имя, время создания, расположение других файлов и так далее.

Журналы активности. Всё, что происходит с БД: запись, чтение, удаление и так далее.

«Записать в журнал активности».

«Создать резервную копию».

«Восстановиться из резервной копии».

«Поставить запрос в очередь».

«Заархивировать данные в базе».

«Провести диагностику данных».

Мы не зря в этом разделе остановились на разнице между базой данных и экземпляром — именно в ней и заключается скрытая мощь Oracle DB.

Сила Oracle DB — в скорости и масштабируемости

Чтобы сайт быстрее обрабатывал запросы пользователей и лучше справлялся с нагрузкой, ему обычно докупают дополнительное серверное «железо» — в айтишном мире это называется масштабированием. И важно, чтобы эти серверы работали сообща — быстро, бесшовно и не мешая друг другу.

А в Oracle DB как раз есть утилиты, которые позволяют экземплярам на разных машинах работать с одной базой данных. Если упадёт один какой-то сервер, его работу подхватит другой и начнёт с того же места. Причём это произойдёт абсолютно незаметно для пользователя. Да что там сервер — если ваша БД крутится в нескольких дата-центрах, то выход из строя одного из них не скажется на работе всей БД.

То есть здесь мы убиваем сразу трёх зайцев: и скорость сайта повышаем, и страхуем себя на случай поломки, и обслуживание удешевляем — можно безболезненно отключить какой-то сервер, если он потребует ремонта.

За всю эту магию в Oracle DB отвечают три функции:

Oracle RAC. RAC в переводе с английского означает «кластеризация». Идея в том, что мы создаём кластер машин, работающих с одной БД.

Oracle Streams. Утилита, которая отвечает за обмен информацией между базами данных, она нужна, чтобы серверы работали синхронно.

Oracle Data Guard. Механика здесь простая: есть главный сервер, а есть вспомогательные, в которые периодически делаются бэкапы из главного.

На каком языке пишут запросы

Обычно запросы в реляционных СУБД пишут на языке SQL, эта аббревиатура так и расшифровывается — «язык структурированных запросов». С его помощью можно делать с данными в базе что угодно: добавлять, удалять, группировать, настраивать доступ для разных пользователей и так далее.

Например, если мы хотим посмотреть всех подписчиков Skillbox Media «Код», живущих в Москве, запрос на языке SQL будет выглядеть так:

Версии и редакции Oracle DB

Всего за время существования Oracle DB вышло более 20 версий этой СУБД. Каждая новая версия знаменовала какую-то новую веху в становлении компьютеров: сначала добавили поддержку языка SQL, потом — разделение на клиент и сервер, чуть позже реализовали объектную модель и экземпляры. А в девяностые наконец доползли до интернета и веб-серверов.

Историю развития Oracle DB в версиях можно посмотреть на этом таймлайне:

Последняя версия под кодовым названием 21c вышла в 2021 году. Туда разработчики зашили целых 200 новых функций, среди которых поддержка блокчейна, языка JavaScript, JSON-пакетов, фишек для машинного обучения прямо в базе данных и других радостей. Подробнее обо всех нововведениях можно почитать в блоге компании.

Поставляется Oracle DB в четырёх редакциях:

  • Standard Edition 2. Версия для небольших веб-приложений — многие функции урезаны или доступны за дополнительную плату.
  • Enterprise Edition. Вариант для больших компаний, развивающих ресурсоёмкие проекты — например, банки и крупные маркетплейсы. Доступен полный набор фишек для масштабирования, включая RAC.
  • Express Edition. Бесплатная версия, заточенная на скорость — можно быстро скачать, установить и сразу начать пользоваться. Правда, хранить можно всего 11 ГБ пользовательских данных.
  • Personal Edition. Для разработчиков, которые хотят протестировать какие-то фишки у себя на компьютере, прежде чем внедрить их в проект.

Почему Oracle DB стала популярной

Секрет успеха Oracle в том, что компания одной из первых придумала, как сделать реляционные базы данных дешёвыми и по-настоящему массовыми. В отличие, например, от решний IBM, Oracle DB не требовала мощного железа и могла запускаться на совсем маленьких и бюджетных машинах вроде PDP-11.

Если добавить к этому поддержку клиент-серверной архитектуры, становится понятно, почему система полюбилась бизнесу. Ещё бы: ведь она позволила компаниям строить большие распределённые системы, которые работают на недорогих машинах, да ещё и обмениваются данными со скоростью света.

Со временем Oracle DB стала негласным стандартом в тех сферах, где важна стабильность при высокой нагрузке: госсектор, финансы, страхование и так далее. Например, Oracle используют почти все компании из списка Fortune 500 — а это и Apple, и Walmart, и Samsung, и куча других гигантов. Среди российских клиентов отметим Сбербанк, МТС, ЦБ РФ, Ростелеком.

Вот десятка самых популярных баз данных на май 2022 года — Oracle DB на первом месте с 32 процентами рынка:

Ложка дёгтя. Со временем популярность Oracle DB сыграла с компанией злую шутку. Клиентская база росла, затраты на поддержку тоже, и постепенно Oracle DB стала очень дорогим продуктом. Например, стоимость лицензии на сервер с 16-ядерным процессором может доходить до 1,6 млн рублей в год — а запустить полноценный дата-центр на Oracle DB вообще стоит целое состояние.

Выводы: кому и зачем нужна Oracle DB

Oracle DB — это флагман на рынке коммерческих баз данных. Благодаря скорости и безопасности она хорошо подходит для работы с высоконагруженными проектами, которые обрабатывают запросы миллионов пользователей. Обратная сторона — высокая стоимость обслуживания.

Если вы ищете базу данных для небольшого сайта или интернет-магазина, лучше присмотреться к похожим open-source-решениям — тем же MongoDB и PostgreSQL. Как правило, базовые функции там бесплатные, а расширенные докупить будет дешевле, чем накатить полноценную СУБД от Oracle.

Больше интересного про код в нашем телеграм-канале. Подписывайтесь!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *