Oracle Database XE Logo
Свершилось! Можно открывать шампанское и закатывать вечеринку — спустя более, чем 7 лет с момента выпуска предыдущего релиза, для скачивания наконец доступна свежайшая Oracle Database 18c XE. Пока только для Linux x64, но версии для других платформ, также как и Docker и Vagrant образы обещают появиться совсем скоро.



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


Новая же, 18-ая версия XE открывает просто небывалый простор для использования данной СУБД, так как в этот раз компания Oracle сменила тактику, и вместо предоставления минимального функционала, включила в эту редакцию практически все самые популярные опции самой дорогой и функциональной редакции Enterprise Edition. Но по-прежнему с ограничениями по используемым ресурсам.


Почему 18с?


Система версионности Oracle Database


Читателям, которые не работают с СУБД от 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


RAD Badge


Стоит заметить, что в отличие от Oracle Database 11g XE, новая версия Express Edition поставляется без предустановленного Oracle APEX (Application Express — фреймворк для быстрой разработки data-driven веб-приложений), это обсусловлено как минимум контейнерной архитектурой СУБД.


Однако, установка так называемого Oracle RAD-стека (Rapid Application Development), состоящего из REST Data Services, APEX и Database, не составит большого труда. Последние версии данных компонент всегда можно найти на официальном сайте:



Я считаю эту новость грандиозной для всех разработчиков, так или иначе связанных с 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)


  1. PavelGhost
    21.10.2018 22:40

    Не известно, планируется ли также выпустить docker image?
    Конечно, сделать самому docker image из oraclelinux + oracle-xe rpm дело простое, но в
    github.com/oracle/docker-images много всего уже есть особенно интересного для задач PoC, тестирования и demo. Так что XE, мне кажется, было был вполне логично добавить в этот список.


    1. ZZa Автор
      21.10.2018 22:49

      Да, докер-образы с предустановленной XE запланированы к выпуску. Возможно, что Tim Hall (также известный как oracle-base guy) сделает это даже раньше самой Oracle.


    1. dim2r
      22.10.2018 13:05

      на сайте есть virtual box образы


      1. PavelGhost
        22.10.2018 13:31

        ну Вы сравнили VirtualBox и docker ;-) Интергируйте тестирование с VBox и Jenkins. Даже с packer это будет в разы менее приятно и просто и существенно медленнее, чем с docker.


  1. Alhymik
    21.10.2018 23:33

    на этот раз в неё включены практически все самые популярные опции из Standard и даже Enterprise Edition

    Когда-то скачал XE, кажется еще 11g, и жестко обламывался сообщениями, типа, этот функционал недоступен в данной редакции — помнится, это касалось аналитических функций (то за что любил оракл) и, кажется, работой с XML, XPatch там не поддерживался вроде, да? Выругался и больше его никогда не ставил. Как сейчас с этим? В плане разработки на PL SQL доступно прямо таки все, что в ентрепрайсе, все пакеты и операторы? И регулярками можно пользоваться?


    1. 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) — киллер фича, позволяющая менять формат получаемого функцией ответа в рантайме.


      1. PavelGhost
        22.10.2018 12:41

        Очень интересно, спасибо.


    1. PavelGhost
      22.10.2018 13:32

      Alhymik

      И регулярками можно пользоваться?

      а что было не так с регулярками в 11g?


  1. PavelGhost
    22.10.2018 01:17

    Будет ли официальный релиз XE в принципе или в будущем для Debian/Ubuntu? Пока я вижу только rpm.

    У нас тестеры какой-то framework используют чисто под Ubuntu и как-то мучали вопросами про Oracle XE 11.2 — нашёлся deb пакет и docker image (источник).


    1. 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 существует великое множество, и я думаю, даже если официальной поддержки не будет, энтузиасты быстро подхватят идею и подготовят свои гайды по развертыванию СУБД на этот тип операционных систем.


  1. AlanDenton
    22.10.2018 12:01

    Что сказать… я доволен. Разработчики Oracle последовали примеру Microsoft. Где начиная с SQL Server 2016 SP1 можно на экспрессе использовать фишки более старших версий (секционирование, колумнсторы и ин-мемори). Авось и в 2019 версии чуть уменьшат ограничения по ресурсам по примеру Oracle.


    1. PavelGhost
      22.10.2018 12:43

      Вполне может оказаться, что наоборот MS стала делать как Oracle, спустя 10 лет. Oracle XE 10g выпустили в production в феврале 2006 года и уже тогда функционально XE был мало чем порезан кроме ограничений по ресурсам.


      1. ZZa Автор
        22.10.2018 14:29

        Он функционально был порезан достаточно жестоко. Одно отсутствие поддержки Java чего стоит. А теперь XE не просто не порезан по сравнению со Standard Edition, так ещё и включает в себя половину Enterprise-опций.


        1. PavelGhost
          22.10.2018 15:22

          Видимо, мне тогда было вполне достаточно и отложилось в голове, что особых ограничений не было. В любом случае, это уже дело прошлое.


  1. dim2r
    22.10.2018 13:08

    Не совсем понятно, что именно нового в 18, большинство фич из списка уже есть в 11 и 12.


    1. OlehR
      22.10.2018 13:28

      Таким образом, релиз 12.2.0.2 стали считать версией 18


    1. ZZa Автор
      22.10.2018 14:34

      Вроде я даже ссылки оставил на описание изменений в каждой из версий, вышедших после 11g XE.


  1. migelle74
    22.10.2018 13:48

    А есть ли в 18XE ява и работа с ssl (wallet).
    Очень не хватало этого в 11XE


    1. ZZa Автор
      22.10.2018 14:42

      Вроде SQLJ это и есть опция, позволяющая писать хранимые процедуры на Java (но это не точно). Для Windows также есть поддержка хранимых процедур, реализованных на .NET

      Насчет Oracle Wallet я также не уверен частью какой опции он является, но практически все опции из секции Security также входят в поставку. Однако, на своей практике при необходимости иметь SSL, я это делал путем установки reverse-proxy (в лице того же Apache httpd) перед инстансом базы данных. Насчет «исходящей» работы с SSL не подскажу.


  1. fivehouse
    22.10.2018 19:48

    Online Table Redefinition
    Аналогичная возможность неблокирующего переобределения структуры таблиц через использование пакета DBMS_REDEFINITION, ранее доступного только для пользователей EE.
    OMG! Представил себе реакцию любителя XE пытающегося воспользоваться DBMS_REDEFINITION с его сотнями подводных камней и тонкими несоответствиями/пропусками в документации.
    Materialized View Query Rewrite
    Опция, позволяющая оптимизатору автоматическое «переписывание» SQL-запросов на использование материализованных представлений для улучшения их производительности.
    OMG 2 раза! Представил себе любителя XE читающего и понимающего план запроса (да и еще сгенеряченного XE) и куда в него и какой Materialized View можно вставить и действительно ли это что нибудь ускорит.
    В общем, маркетИнг он такой маркетИнг…


    1. Berkof
      22.10.2018 20:28

      А почему бы студенту, проходящему курс СУБД, не научиться разбирать план выполнения запроса на примере Oracle? Это ж база больше для «поковыряться, разобраться, написать прототип, а потом и лицензию купить, чтобы не переписывать».


      1. fivehouse
        24.10.2018 14:39

        А почему бы студенту, проходящему курс СУБД, не научиться разбирать план выполнения запроса на примере Oracle?
        В среднем по рынку царит отношение к XE как к бесплатному констурктору на котором можно «быстренько наваять что-то не очень важное силами дешевого студента» из-за существующих физических ограничений самой XE. А чтобы по настоящему разбораться с планом реального запроса да еще и на том уровне, чтобы понимать куда в него и какой Materialized View можно встроить (особенно для новых версий Oracle) нужно приложить далеко не студенческие бесплатные усилия.


  1. Berkof
    22.10.2018 20:23

    Оракл отличная база данных, которая и работает круто, и стабильная, и хорошо документированная… Только вот беда — лицензии на неё стоят так дорого, что с лихвой перекраывают и стоимость железа, и стоимость разработки под менее кошерные базы данных… Конечно не всегда и не везде (привет кровавый энтерпрайз, где люди отдают любые бабки лишь бы скинуть с себя хоть часть проблем, которые они на себя сами же и взвалили), но имхо — если вам нужен Oracle для хранения ваших данных, значит вы делаете что-то не так.
    Кстати, помню времена, когда я был студентом со взором горящим, и всё пытался поставить XE не помню какую редакцию Oracle на комп в универе… Сколько часов я потратил в попытках разобраться в невразумительной ошибке и как я был удивлён, что корпорация с всемирно известным именем не смогла написать инсталлятор (там тупо опечатка была)! Это моё самое сильно воспоминание про ораклов, а потом, конечно APEX