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

Чем полезен oracle для пользователей

  • автор:

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

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

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

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

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

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

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

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

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

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

А теперь займёмся нашей 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 будет выглядеть так:

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

Но Oracle пошла дальше и выпустила свой диалект языка SQL — называется PL/SQL. Дословно это переводится как «процедурная надстройка для 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.

Зачем нужна Oracle DB в 2020?

Мы тут с товарищем недавно пили пиво, обсуждали софт и задались вот каким вопросом: какие преимущества есть у Oracle DBMS в 2020 году для новых проектов? Почти всё вокруг сейчас либо на PostgreSQL, либо вообще без SQL живёт. Везде хипсторские языки, смузи и макбуки. А Oracle тем временем ещё существует. Как так?

Скажи, ЛОР, это из-за старых жирных контрактов и скоро Ларри Эллисону на новую яхту перестанет хватать? Или Oracle ещё нас всех переживёт?

Как минимум. Плюс она на AIX и прочих подобных системах работает.

«Алсо», таблица сравнений:

ты пошукай сколько лицензия на mysql в проде стоит. а хипстоскули только мечтать об энтерпрайзе могут.

Пошукашка

ты пошукай сколько лицензия на mysql в проде стоит.

Простите, у меня гугель сломался. Сколько лицензия на MySQL в проде стоит?

Оракел — серьёзная контора, можно заключить контракт на поддержку, а не как непойми что опенсорцное.

в Сбербанке разве не Oracle? у них ещё помню факап случился, так они у коммунити помощи просили, сама Oracle им ничем не помогла.

Ты денежные данные тоже собрался на хипсторских сумузитехнологиях развертывать? А инвесторы это одобряют?

И в случае проблемы Оракл скажет «проблемы там у вас»

Это постгрес хипстерский?

либо вообще без SQL живёт. Везде хипсторские языки, смузи и макбуки.

Вот это хипсторское. А постгрес просто сложится под серьезной нагрузкой.

Оракл в Сбере (я как раз оттуда данные в свой постгрес греб). И да. Там факапов было…. Впрочем в Сбере и MS SQL Server есть. А вот OSS они боятся (нет откатов)

ты пошукай сколько лицензия на mysql в проде стоит

Я тебе больше скажу еще у Скайпа (когда он был скайп) была база поболя чем любая раковая… Лично я СДО считал БЫСТРЕЕ рака на постгресе на обычном компе.

ну вот, ага. «habrahabr сбербанк oracle факап» в гугле.

без пруфов на бенчмарки последних версий оракла и постгреса не принимается

Ты сам свою ссылку читал? Там не постгрес, а база данных на основе постгрес. Ну и читать про 2 петабайта в 2020 году просто смешно. Это уже не бигдата по современным меркам.

Я читал. Я говорю, что Постгрес не раз рвал рака как тузик грелку. И «База на основе»… Ты думаешь рак обычно стоковый? А вот хрен.

Ну и https://habr.com/ru/post/429946/ Даже сам Оракл не знает «как это все работает»

Вот это хипсторское. А постгрес просто сложится под серьезной нагрузкой.

Оракл не сложится? Я бы хотел пруфы, особенно учитывая, что Oracle EULA запрещает публиковать бенчмарки.

Да, я тоже об этом подумал.

А постгрес просто сложится под серьезной нагрузкой.

Нагрузка – это клиентские соединения?

Это когда на сервак упал потолок ))

Я ничего не собирался. Я пытаюсь понять, какая может быть причина платить деньги Ларри, кроме как из-за репутации глобального и надёжного решения, которая не факт что обоснованна.

Это когда на сервак упал потолок

Да, если он выдерживает тяжесть Oracle DB, то потолок ему уже не страшен %).

Как минимум. Плюс она на AIX и прочих подобных системах работает.

Ага. Но меня интересуют новые проекты. Понятно, что на говне мамонта будет работать говно мамонта.

Там нет главного: производительности. И не будет. Ларри против публикации подобного.

Смотрите. Вот вы большой начальник и надо принять решение. Варианта 2.

Взять Оракл. Это типа крутая контора. Если будет факап вы ответите «Ну вот видите ТАКАЯ проблема, что даже Оракл ее не смог решить». Тоесть вы перенесли ответственность на Оракл.

Взять Постгрес. Случается факап и все говорят, не ну дурак — взял БЕСПЛАТНУЮ базу. Ну кто даст вам хорошую вещь бесплатно. И в итоге вы в заднице. Так у нас в Ростове ЦБ держал Exchange для 300 почтовых ящиков. ЕЩЕ РАЗ Отдельный Excange для 300 ящиков КАРЛ!

с другой стороны он прав, под каждую задачу своё решение. вы же не хотите в туалет на велосипеде, а в магазин на машине?

postgresql будет медленнее чем sqlite под нужды локалхоста, но говорить что sqlite лучше чем postgresql в корне не верно.

у оракла мастер-мастер хорош… постгре и не снилось

Взять Постгрес. Случается факап и все говорят, не ну дурак — взял БЕСПЛАТНУЮ базу.

Есть компании, продающие постгрес с поддержкой, SLA и блекджеком с шлюхами. Только плати. Они же во многом спонсируют разработку постгреса.

с другой стороны он прав, под каждую задачу своё решение. вы же не хотите в туалет на велосипеде, а в магазин на машине?

Прав в чём? Что плохого в публикации бенчмарков? Что ты вообще несёшь, чувак?

Чиновники ходят. А еще когда я спросил коллегу зачем вам в фирме из 20 человек Excange он сказал «так я смогу его выучить и потом попаду на большое предприятие». С другой стороны у нас на биржевой фирме был Postgres. А данные с бирж лили в sqlite ибо разрабу на своем компе было не кайф постгрес разворачивать. Есть много вещей которые подталкивают людей к чему то. То захотелось Go изучить — сразу у нас python стал медленным, хотя в нем не ботлнек был. И так часто. А начальник что? Ему главное получить откат, а для него что Go, что Erlang, что Python — он в этом как свинья в апельсинах. Я вроде от неглупого начальника слышал «ядро Windows и ядро Linux по сути своей одинаковы»

Да только о них не все знают. Те кто будут оттаптываться в случае факапа топить будут за то, что ты взял БЕСПЛАТНОЕ и еще и кому, то платил скотина такая… А высшее руководство твои оправдания не поймет. Факап есть? Есть. А вот еслиб был Оракл (хотя история не знает сослагательного наклонения, но вот ктож тебе теперь поверит ибо ты говорил что все будет Ок, а оно не Ок)

К счастью, твои слова не соответствуют действительности, и не все работают в подобных бюрократических клоповниках.

В любом случае, меня интересуют технические преимущества, а не «начальник будет ругаться».

у оракла мастер-мастер хорош… постгре и не снилось

Чем именно хорош? Опять же, можно ли найти пруфы этого?

Я и не говорю, что все. в Сбере именно так. Есть еще много где. Вот в финансовой фирме переходить на Go с Python стали потому, что открою я код на Python и рыдаю. Какие варианты у программиста:

Приходим к руководству и говорим ‘Все тупит потому, что я там в коде полный треш накрутил… надо переписать нормально. Это пол года’

Приходим к руководству и говорим ‘Все тупит потому, python гавно — вот вам бенчмарки и давайте перейдем на Go это даст прирост производительности в 5 раз. Это пол года’

Я тупо добавил в коде 5 строк и производительность выросла в СТО раз. В СТО.

Нет. Ты спросил ПОЧЕМУ. Технически не почему. Собственно мало где Оракл лучше. Я вообще не представляю ГДЕ он может быть лучше.

Всё очень просто, кроме oracle db и ms sql server, ну и может быть db2, просто нет других баз, способных переваривать крупные объёмы данных, большую нагрузку и тд и тп. Posgree вроде как и кандидат, но без стероидов и платной поддержки о тех, кто может вам подстроить её под ваши нужны — она тоже не кандидат и по дефолту не далеко ушла от той же mssql.

Тут ответ старый добрый: если вы задаётесь таким вопросом, значит не сталкивались с переработкой больших объёмов данных с помощью sql. Вы конечно скажете, что можно и без sql, можно построить свою систему хоть бы и на базе миллиона нод sqlite+nodejs. Ну да, можно. Но лицензия oracle обойдётся дешевле и работать будет оно стабильнее вашего велосипеда.

PS: сам не являюсь сторонником ни oracle, ни ms, но у нас разные проекты есть и по факту получается, что работать с этими серверами куда приятнее и надёжнее в продакшине. Хоть и разработка крайне неудобна, это да. Но вот ms стала двигаться в сторону нормальных инструментов и скоро такими темпами будет где-то рядом с postgree.

Из технических могу банальные вещи назвать — что oracle, что ms sql прекрасно переваривают таблицы с предельным количеством столбцов и их длин при очень большом наполнении этих таблиц. То есть запросы всё ещё шевелятся. mysql вообще не вывозит такое, pg же что-то посередине. Часто сталкиваемся с тем, что одну таблицу при переходе проекта с ms sql или oracle на pg приходится делить на несколько и думать как не пихать так много данных и оптимизировать запросы чтобы банально продолжало всё работать.

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

Технологии баз данных Oracle

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

СУБД Oracle Database 21c также доступна для производственного использования в качестве инновационного выпуска, что позволяет оперативно оценить множество улучшений и новых возможностей. Сюда относится автономное администрирование, улучшенная поддержка нескольких моделей через базы данных Javascript и нативные блокчейн-таблицы, а также улучшения со множественной нагрузкой, такие как AutoML, и улучшения по сегментам, которые будут включены в будущие долгосрочные выпуски.

Oracle Database Free для разработчиков (3:40)

Oracle расширяет границы управления данными

Последние нововведения в Oracle Autonomous Data Warehouse упрощают и ускоряют доступ к данным и обмен данными между организациями и облачными средами при значительном снижении затрат.

Learn the latest techniques to maximize the value of your data, with more than 200 sessions and hands-on labs covering Oracle Database 23c, the latest emerging tech, and how to simplify AppDev, add analytics, and prepare for upgrades/migrations.

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

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

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

Oracle Exadata, или О пользе engineered systems (часть 1)

Эту статью я хочу начать со ссылки на важное исследование, которое было сделано четыре года назад агентством PAC Consulting для компании Compuware. С результатами исследования можно ознакомиться здесь, касалось оно производительности решений на базе систем SAP. Аналитики проинтервьюировали менеджмент 588 компаний Бельгии, Великобритании, Германии, Испании, Италии, Нидерландов, США и Франции и выяснили, что 43% пользователей веб-портала SAP недовольны его производительностью. Из числа больших компаний (с числом пользователей более 2 тыс.) недовольна треть, а среди остальных — 48%. Многие сказали, что неудовлетворительная производительность приложений является серьезным потенциальным финансовым риском для предприятий.

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

Так вот, в первую очередь на производительность приложений SAP влияет технологическая инфраструктура, на которой они выполняются. Compuware отмечает, что ПО SAP адекватно работает на стабильной и надежной ИТ-инфраструктуре — которая включает в себя и компьютеры, и базу данных, и сетевые соединения. А значит исключительно важно, чтобы кто-то производил стабильную и надежную ИТ-инфраструктуру, на которую будут работать приложения.

Компания Oracle постоянно развивала функциональность для повышения быстродействия, безопасности и надежности корпоративных систем. В 1992 году появился первый выпуск SAP R/3 для Oracle, а в 1999 году компании подписали соглашение о коммерческом и сервисном партнерстве, которое было продлено в 2010 году. Когда в 2009 году Oracle приобрела компанию Sun, она перевела свои программно-аппаратные комплексы Exadata, предназначенные для бизнес-аналитики, консолидации баз данных и оперативной обработки транзакций, на платформу Sun. Буквально через два года появилась версия программно-аппаратного комплекса Oracle Exadata для SAP, а затем Oracle Exalogic и Oracle SuperCluster.

Что такое (oracle) engineered systems ?

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


Ваша серверная комната ДО и ПОСЛЕ появления (oracle) engineered systems .

Как разрабатываются (oracle) engineered systems ? Аппаратное обеспечение и программное обеспечение проектируются, тестируются и отлаживаются совместно. А если вы знаете, какие приложения на каком оборудовании будут работать, то вы можете добиться высочайшей производительности, при этом меньше вероятность «сюрпризов» от несовместимости компонентов, и, конечно, проще становится оказание поддержки. Заказчикам не приходится подбирать и оптимизировать компоненты — серверы, диски, процессоры, сетевые компоненты, память и т.п. Устанавливать и настраивать программное обеспечение, тестировать работоспособность каждого сервера, заниматься их последующим обновлением и т.п. тоже не придется. Существенно упрощается обслуживание ИТ-инфраструктуры.

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

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

Комплексы Oracle Exadata предназначены для организации сервисов баз данных Oracle. Oracle Exalogic — машина для серверов приложений, включая Oracle Applications, SAP ERP и другие. Комплексы Oracle Database Appliance предназначены для развертывания сервисов баз данных Oracle вместе с приложением — например, с центральной инстанцией SAP ERP. Oracle Virtual Compute Appliance позволяет разворачивать все необходимые сервисы, это программно-аппаратный комплекс сертифицирован, в том числе, компанией SAP. Далее я подробнее остановлюсь на решении Oracle Exadata для SAP.

Наконец, Oracle SuperCluster M6-32 создан на платформе SPARC, и это по всем параметрам одна из мощнейших машин, поставляемых сегодня на рынке — 32 процессора, 384 ядра, 3072 треда; 140 тыс. пользователей SAP, официальный результат тестирования — 793 930 SAPS. Подробности об Oracle SuperCluster — в следующей статье.

Oracle Exadata

Младшая конфигурация решения Oracle Exadata — Oracle Exadata Eights Rack. В нее входит два вычислительных модуля на платформе Intel Х86, два сервера баз данных. Большинство заказчиков использует для коммутации классических систем хранения и классических серверов Fibre Channel со скоростью передачи данных 10 или 16 Гб, но это решение чревато серьезными задержками отклика при масштабировании, поэтому Oracle использует для коммутации высокоскоростную сеть InfiniBand со скоростью 40 Гб. Infiniband обладает минимальной латентностью и обеспечивает минимальное время отклика при большом количестве пользователей.

Система хранения данных, используемая в Oracle Exadata, называется Exadata Storage Server, и существенно отличается от классических решений. Кратко особенность Exadata Storage Server заключается в том, что система «понимает», что работает с базой данных Oracle, оптимизирует передачу блоков с уровня систем хранения на уровень базы данных, и обеспечивает выполнение части операций с базами данных, включая SQL-запросы, на уровне системы хранения. Таким образом Exadata Storage Server обеспечивает уменьшение трафика с уровня систем хранения на уровень базы данных, и обеспечивает наивысшую общую производительность системы в целом.

Exadata Storage Server использует сервер Х4-2, в котором установлены два 6-ядерных процессора, 96 Гбайт памяти, PCI Flash Card для ускорения ввода-вывода и жесткие диски объема 1,2 Тбайт или 4 Тбайт для долговременного хранения данных.

Exadata Database Server имеет два 12-ядерных процессора, объем оперативной памяти — 256 или 512 Гбайт. Все интерфейсы: и сетевые, и InfiniBand — продублированы.

Более высокими конфигурация Oracle Exadata Database Machine, чем Oracle Exadata Eighth, являются Oracle Exadata Quarter, Oracle Exadata Half и Oracle Exadata Full Rack. На начальном этапе клиент может приобрести Eighth или Quarter, а затем по мере необходимости стандартным путем масштабировать конфигурацию до любой более мощной, при этом не нужно задумываться о сетевых мощностях, обеспечении доступа серверов к системе хранения данных и т.д., все это решается заранее, клиенту нужна только классическая сеть Ethernet.

В России самым популярным решением является Oracle Exadata Quarter, в него входят два сервера баз данных (суммарно 48 ядер), оперативная память 512 Гбайт или 1 Тбайт, дублируемый InfiniBand, три системы хранения, PCI Flash Cash объемом 9,6 Тбайт, и хранилище файлов баз данных с полезным объемом от 19 Тбайт (быстрые диски) до 63 Тбайт (диски высокой емкости) с учетом дублирования, реорганизации RAID-групп и т.д.

Производительность

Производительность — это то, ради чего все затевалось, поэтому она заслуживает отдельного разговора.

Еще раз остановимся на Oracle Exadata Quarter. Давайте представим себе, что у нас есть только обычные диски и нет SSD-дисков и PCI Flash Cash. В этом случае 50 тыс. операций ввода-вывода — это полный шкаф с дисками. PCI Flash Cash обеспечивает 570 тыс. операций чтения и 420 тыс. операций записи в секунду.

Благодаря чему это достигается? Дело в том, что современные базы данных приложений SAP, как правило, не превышают 15 Тбайт по объему. Такая база практически целиком умещается в быстрый кэш. Но даже если база данных занимает 50 Тбайт, то в PCI Flash Cash попадает практически вся ее рабочая часть — потому что средняя система обновляет менее 10% данных, а высоконагруженная, как правило, не более 20% данных.

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

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

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