Свершилось! Можно открывать шампанское и закатывать вечеринку — спустя более, чем 7 лет с момента выпуска предыдущего релиза, для скачивания наконец доступна свежайшая Oracle Database 18c XE. Пока только для Linux x64, но версии для других платформ, также как и Docker и Vagrant образы обещают появиться совсем скоро.
- Официальный анонс
- Ссылка на скачивание
- Инструкция по установке и развертыванию
- Информация о лицензировании
Для тех, кто не в курсе, Oracle Database XE или Express Edition — это бесплатная редакция одной из самых мощных реляционных СУБД. Традиционно этот тип редакции обладал минимальным доступным функционалом, определенными ограничениями на используемые ресурсы, и малым размером дистрибутива. Тем не менее, даже эта версия СУБД всегда пользовалась большой популярностью среди тех, кто только познаёт возможности этой СУБД, небольших компаний, которых на данный момент устраивают все ограничения и они хотят оценить технологию и среди простых энтузиастов как мы с вами.
Новая же, 18-ая версия XE открывает просто небывалый простор для использования данной СУБД, так как в этот раз компания Oracle сменила тактику, и вместо предоставления минимального функционала, включила в эту редакцию практически все самые популярные опции самой дорогой и функциональной редакции Enterprise Edition. Но по-прежнему с ограничениями по используемым ресурсам.
Почему 18с?
Читателям, которые не работают с СУБД от Oracle каждый день, поясню откуда взялась цифра 18. Дело в том, что после версии 12c Release 2 производитель решил изменить схему версионирования и перейти на годичный цикл выпуска новых версий своей СУБД. Таким образом, релиз 12.2.0.2 стали считать версией 18, а в будущем мы увидим 19, 20 и далее версии Oracle Database. Одновременно с этим, новый Product Manager по направлению Express Edition пообещал, что теперь и впредь мы будем наслаждаться новой версией XE практически одновременно с выпуском остальных редакций, т.е. также раз в год. Единственная разница будет состоять в том, что для XE не будет выпускаться патчей и исправлений безопасности, в отличие от SE и EE. Однакое, каждый следующий мажорный релиз XE будет включать в себя все исправления и изменения, сделанные в редакциях SE и EE за весь предыдущий год, что, конечно, не может не радовать. Особенно если учесть, что на протяжении 7 лет 11-ая версия XE также не получала никаких патчей и исправлений, но всё равно была сильно востребована у комьюнити.
Что нового?
Итак, что же примечательного в новой версии Oracle Database 18c XE? На самом деле масса вещей. Но самое важное отличие от предыдущих версий данной редакции состоит в том, что на этот раз в неё включены практически все самые популярные опции из Standard и даже Enterprise Edition. Рассмотрим более подробно самые примечательные из них.
Multitenant
Начиная с 12c Oracle Database поддерживает так называемые Pluggable Databases — смысл в том, что база данных может быть "подключена" и "отключена" к инстансу буквально при помощи пары команд SQL*Plus. Это позволяет переносить базы данных между хостами и даже версиями СУБД без каких-либо сложностей. Обещают даже совместимость с более новыми версиями Oracle Database, т.е. процесс апгрейда будет выглядеть не сложнее, чем unplug-uninstall-install-plug. Также Multitenant-архитектура позволяет поддерживать, например, разные версии APEX в разных базах данных на одном хосте.
In-Memory Column Store и Aggregation
Одна из самых мощных и дорогих опций Oracle Database — это in-memory column store, которая позволяет хранить в памяти копию данных в колонкоориентированном формате для скорейшего доступа к ним в прозрачном режиме.
Partitioning
Партиционирование не является чем-то новым и захватывающим, однако, всегда было доступно в Oracle Database только для пользователей Enterprise Edition, тогда как в конкурирующих СУБД эта опция в большинстве случаев есть, что называется, "из коробки". Вот, например, в недавно вышедшем Postgres 11 также было добавлено хэш-партиционирование. Теперь же эта функциональной доступна и в бесплатной редакции Oracle.
Advanced Analytics и Security
Это целый набор инструментов для Data Mining. Интерфейсы Data Mining SQL, R programming, Oracle Data Miner UI. Что же касается Security, то это всё, что касается прозрачного шифрования данных.
Online Index Rebuid
Как же мне не хватало этой возможности в одном из проектов. Теперь можно производить неблокирующее перестроение индекса "на лету".
Online Table Redefinition
Аналогичная возможность неблокирующего переобределения структуры таблиц через использование пакета DBMS_REDEFINITION
, ранее доступного только для пользователей EE.
Query Results Cache и PL/SQL Function Result Cache
Не секрет, что если речь идет о производительности, то она не может вестись без кэширования данных. Кэширование на уровне инстанса результатов SQL-запросов и PL/SQL-функций теперь доступно и может использоваться для лучшей производительсности ваших приложений.
Bitmap Indexes
Специальный вид индексов, использование которых обычно сопряжено с аналитическими системами. Это так, потому что данный тип индексов рекомендуется использовать только на таблицах, редко подверженных апдейтам. Однако, их преимущество состоит в том, что эти индексы могут комбинироваться для ещё большего ускорения доступа к данным, а также использоваться для использования нескольких источников (так называемые Bitmap Join Indexes).
Oracle Advanced Compression
Опция, позволяющая отсрочить достижение ограничений по ресурсам в XE, т.к. производит прозрачное сжатие данных как в базе данных, так и в структурах памяти самого инстанса.
Materialized View Query Rewrite
Опция, позволяющая оптимизатору автоматическое "переписывание" SQL-запросов на использование материализованных представлений для улучшения их производительности.
Oracle Spatial and Graph
Всё что касается хранения и работы с геоданными.
К сожалению, не завезли такие опции как Parallel Query, Block Media Recovery, Diagnostics pack и Tuning pack. Однако, Roadmap проекта предполагает включение последних двух в следующие версии XE.
С полным списком включенных в сборку опций, можно ознакомиться в официальной брошюре по лицензированию данной редакции.
Ну и конечно не стоит забывать о количестве исправлений ошибок и усовершенствований внутренних механизмов, которые СУБД претерпела с версии 11g. Только подумайте какой рывок был сделан в работе самой важной и самой уважаемой компоненты Oracle Database — её оптимизатора.
Ограничения
Где же ложка дегтя? В ограничениях на используемые данной версией СУБД ресурсы. Хотя и здесь был замечен логичный прирост:
- Максимальный размер базы данных составляет 12 GB (против 11 GB в 11g XE);
- До 2 GB оперативной памяти (против 1 GB в 11g XE);
- До 2 потоков CPU (против 1 в 11g XE);
- До 3 подключаемых баз данных (Pluggable Databases или PDB, в 11g XE такая функциональность отсутствовала).
Конечно, для промышленного использования такие параметры кажутся смешными, однако, для академического использования, стартапов и небольших компаниий всё укладывается в рамки необходимого. Также как и для оценки технологии даже серьезными индустриальными гигантами, этого порой более чем достаточно.
Post Scriptum
Стоит заметить, что в отличие от Oracle Database 11g XE, новая версия Express Edition поставляется без предустановленного Oracle APEX (Application Express — фреймворк для быстрой разработки data-driven веб-приложений), это обсусловлено как минимум контейнерной архитектурой СУБД.
Однако, установка так называемого Oracle RAD-стека (Rapid Application Development), состоящего из REST Data Services, APEX и Database, не составит большого труда. Последние версии данных компонент всегда можно найти на официальном сайте:
- Oracle Application Express (APEX), инструкция по установке и развертыванию;
- Oracle REST Data Services (ORDS), инструкция по установке и развертыванию.
Я считаю эту новость грандиозной для всех разработчиков, так или иначе связанных с Oracle Database, так как вновь обретенная жизнь для XE может значить приток молодых специалистов в эту область, что всегда положительно отражается на комьюнити! Ура, товарищи!
Update
Я не пишу об этом в основной статье, но так как в комментариях стали возникать вопросы по этому поводу, всё же обращу ваше внимание на тот факт, что 18c XE включает в себя все функциональные нововведения, собственно, 18-й версии СУБД. Не буду говорить о том, какие из них являются объективно наиболее яркими, но для меня это несомненно:
- Нативная поддержка работы со слабоструктурированными JSON-данными;
- Поддержка длинных наименований для объектов БД, таких как таблицы, функции, пакеты и т.д. Те, кто в теме знают, что до, по моему, 12c Release 1 существовало ограничение в 30 символов, что порой вызывало сложности именования;
- Advanced Index Compression;
- Новый пакет
UTL_CALL_STACK
; - PL/SQL-функции, определенные в выражении SQL WITH;
- PL/SQL-Specific типы данных теперь разрешены к использованию через PL/SQL-to-SQL-интерфейс;
- PTF или Polymorphic Table Functions, позволяющие регулировать формат вывода в рантайме;
- Qualified Expressions, или по-другому конструкторы для всех типов коллекций в PL/SQL;
- Private Temporary Tables, существующие только в рамках текущей сессии.
И это далеко не всё, а только то, что радует лично меня и чем я обязательно воспользуюсь. Полный список изменений можно посмотреть в официальной документации:
Комментарии (23)
Alhymik
21.10.2018 23:33на этот раз в неё включены практически все самые популярные опции из Standard и даже Enterprise Edition
Когда-то скачал XE, кажется еще 11g, и жестко обламывался сообщениями, типа, этот функционал недоступен в данной редакции — помнится, это касалось аналитических функций (то за что любил оракл) и, кажется, работой с XML, XPatch там не поддерживался вроде, да? Выругался и больше его никогда не ставил. Как сейчас с этим? В плане разработки на PL SQL доступно прямо таки все, что в ентрепрайсе, все пакеты и операторы? И регулярками можно пользоваться?ZZa Автор
22.10.2018 06:51Вам не кажется, это была именно 11g, но вот насчет опций вы ошибаетесь. Всё, что вы пересислили, в 11g XE доступно для разработчика. Как аналитические функции, так и работа с XML. Не было много другого, но не того, что упомянули вы.
Касательно разработки на PL/SQL в новой версии — нет, например, параллельное выполнение запросов и кода по-прежнему недоступно. Правда в нем и нужды особо нет, учитывая ограничения в редакции Express Edition (а именно на количество одновременно используемых потоков CPU). Но практически во всем остальном никаких ограничений нет.
Я не писал об этом в статье, но на самом деле PL/SQL претерпел разительные изменения к 18-й версии СУБД. Например, он получил такие классные штуки как нативная поддержка JSON, qualified expressions (подобие конструкторов для всех типов коллекций), а также PTF (Polymorfic Table Functions) — киллер фича, позволяющая менять формат получаемого функцией ответа в рантайме.
PavelGhost
22.10.2018 13:32
PavelGhost
22.10.2018 01:17Будет ли официальный релиз XE в принципе или в будущем для Debian/Ubuntu? Пока я вижу только rpm.
У нас тестеры какой-то framework используют чисто под Ubuntu и как-то мучали вопросами про Oracle XE 11.2 — нашёлся deb пакет и docker image (источник).ZZa Автор
22.10.2018 06:55Я не подскажу насчет официального дистрибутива для debian-based дистрибутивов Linux. Ранее Oracle официально поддерживала только RPM-based дистрибутивы, и то только такие как Oracle Linux и RHEL (Red Hat Enterprise Linux). Тем не менее работать с XE на CentOS было настолько же приятно, как и на предыдущих двух.
Тем не менее инструкций о том, как развернуть Oracle XE на Debian или Ubuntu существует великое множество, и я думаю, даже если официальной поддержки не будет, энтузиасты быстро подхватят идею и подготовят свои гайды по развертыванию СУБД на этот тип операционных систем.
AlanDenton
22.10.2018 12:01Что сказать… я доволен. Разработчики Oracle последовали примеру Microsoft. Где начиная с SQL Server 2016 SP1 можно на экспрессе использовать фишки более старших версий (секционирование, колумнсторы и ин-мемори). Авось и в 2019 версии чуть уменьшат ограничения по ресурсам по примеру Oracle.
PavelGhost
22.10.2018 12:43Вполне может оказаться, что наоборот MS стала делать как Oracle, спустя 10 лет. Oracle XE 10g выпустили в production в феврале 2006 года и уже тогда функционально XE был мало чем порезан кроме ограничений по ресурсам.
ZZa Автор
22.10.2018 14:29Он функционально был порезан достаточно жестоко. Одно отсутствие поддержки Java чего стоит. А теперь XE не просто не порезан по сравнению со Standard Edition, так ещё и включает в себя половину Enterprise-опций.
PavelGhost
22.10.2018 15:22Видимо, мне тогда было вполне достаточно и отложилось в голове, что особых ограничений не было. В любом случае, это уже дело прошлое.
migelle74
22.10.2018 13:48А есть ли в 18XE ява и работа с ssl (wallet).
Очень не хватало этого в 11XEZZa Автор
22.10.2018 14:42Вроде SQLJ это и есть опция, позволяющая писать хранимые процедуры на Java (но это не точно). Для Windows также есть поддержка хранимых процедур, реализованных на .NET
Насчет Oracle Wallet я также не уверен частью какой опции он является, но практически все опции из секции Security также входят в поставку. Однако, на своей практике при необходимости иметь SSL, я это делал путем установки reverse-proxy (в лице того же Apache httpd) перед инстансом базы данных. Насчет «исходящей» работы с SSL не подскажу.
fivehouse
22.10.2018 19:48Online Table Redefinition
OMG! Представил себе реакцию любителя XE пытающегося воспользоваться DBMS_REDEFINITION с его сотнями подводных камней и тонкими несоответствиями/пропусками в документации.
Аналогичная возможность неблокирующего переобределения структуры таблиц через использование пакета DBMS_REDEFINITION, ранее доступного только для пользователей EE.Materialized View Query Rewrite
OMG 2 раза! Представил себе любителя XE читающего и понимающего план запроса (да и еще сгенеряченного XE) и куда в него и какой Materialized View можно вставить и действительно ли это что нибудь ускорит.
Опция, позволяющая оптимизатору автоматическое «переписывание» SQL-запросов на использование материализованных представлений для улучшения их производительности.
В общем, маркетИнг он такой маркетИнг…Berkof
22.10.2018 20:28А почему бы студенту, проходящему курс СУБД, не научиться разбирать план выполнения запроса на примере Oracle? Это ж база больше для «поковыряться, разобраться, написать прототип, а потом и лицензию купить, чтобы не переписывать».
fivehouse
24.10.2018 14:39А почему бы студенту, проходящему курс СУБД, не научиться разбирать план выполнения запроса на примере Oracle?
В среднем по рынку царит отношение к XE как к бесплатному констурктору на котором можно «быстренько наваять что-то не очень важное силами дешевого студента» из-за существующих физических ограничений самой XE. А чтобы по настоящему разбораться с планом реального запроса да еще и на том уровне, чтобы понимать куда в него и какой Materialized View можно встроить (особенно для новых версий Oracle) нужно приложить далеко не студенческие бесплатные усилия.
Berkof
22.10.2018 20:23Оракл отличная база данных, которая и работает круто, и стабильная, и хорошо документированная… Только вот беда — лицензии на неё стоят так дорого, что с лихвой перекраывают и стоимость железа, и стоимость разработки под менее кошерные базы данных… Конечно не всегда и не везде (привет кровавый энтерпрайз, где люди отдают любые бабки лишь бы скинуть с себя хоть часть проблем, которые они на себя сами же и взвалили), но имхо — если вам нужен Oracle для хранения ваших данных, значит вы делаете что-то не так.
Кстати, помню времена, когда я был студентом со взором горящим, и всё пытался поставить XE не помню какую редакцию Oracle на комп в универе… Сколько часов я потратил в попытках разобраться в невразумительной ошибке и как я был удивлён, что корпорация с всемирно известным именем не смогла написать инсталлятор (там тупо опечатка была)! Это моё самое сильно воспоминание про ораклов, а потом, конечно APEX
PavelGhost
Не известно, планируется ли также выпустить docker image?
Конечно, сделать самому docker image из oraclelinux + oracle-xe rpm дело простое, но в
github.com/oracle/docker-images много всего уже есть особенно интересного для задач PoC, тестирования и demo. Так что XE, мне кажется, было был вполне логично добавить в этот список.
ZZa Автор
Да, докер-образы с предустановленной XE запланированы к выпуску. Возможно, что Tim Hall (также известный как oracle-base guy) сделает это даже раньше самой Oracle.
dim2r
на сайте есть virtual box образы
PavelGhost
ну Вы сравнили VirtualBox и docker ;-) Интергируйте тестирование с VBox и Jenkins. Даже с packer это будет в разы менее приятно и просто и существенно медленнее, чем с docker.