Меню Рубрики

Установка apex на oracle 12c

Установка Oracle ApEx

Здравствуйте, друзья и коллеги. Однажды в компании возникла необходимость в создании веб-интерфейса для небольшой базы данных. Уже тогда было понимание того, что в будущем понадобится интеграция с LDAP, возможность гибко управлять правами доступа пользователей на просмотр определенных страниц, удобный конструктор для создания страниц, инструменты бизнес-аналитики. Тогда-то я и познакомился с Oracle Application Express (ApEx). Это мощнейшее средство входит в состав таких продуктов, как Oracle Database 11g, 12c, которые, в зависимости от используемой редакции, могут стоить немало. Как это часто бывает, желания превышали возможности.

Для таких случаев у Oracle есть бесплатная версия СУБД Oracle Database Express Edition (коротко XE). На нее накладываются следующие ограничения:

  • на один сервер можно установить только 1 инстанс;
  • может быть установлена на многопроцессорный сервер, но использоваться будет только 1 CPU;
  • для СУБД доступно максимум 1Gb RAM;
  • размер пользовательских данных ограничен 11Gb (в некоторых документах всё ещё встречается ограничение в 4Gb, но это уже устаревшая информация);
  • HTTPS не поддерживается встроенным веб-сервером, для этого приходится использовать Apache/Nginx.

Нас эти ограничения вполне устраивали. Для сервера мы взяли VPS в Digital Ocean с 2Gb RAM, установили Centos 7.2. В следующей главе будет описана установка Oracle XE, а затем — обновление встроенного Application Express v.4 до последней актуальной версии (на момент написания статьи — 5.0.4).

Установка Oracle 11g XE

Установим необходимые пакеты, добавим swap в виде файла и внесём изменения в /etc/fstab:

Следующий шаг — опциональный. Можно сконвертировать Centos в Oracle Linux, затем скачать пакет, меняющий настроки ядра в соответствии с рекомендациями Oracle, подробности можно прочитать тут.

Для загрузки дистрибутива Oracle XE (доступны версии под Windows и Linux) понадобится регистрация на сайте вендора, она бесплатна и ни к чему не обязывает. Скачаем zip-архив, распакуем его и установим:

После установки RPM-пакета необходимо запустить oracle-xe с параметром configure — в этом случае запустится мастер завершения настройки, в интерактивном режиме задающий вопросы. Также доступна установка с использованием файла ответов, в который мы внесем порты по умолчанию и пароль учетной записи SYS:

После установки с использованием файла ответов, не забудьте сохранить пароль в надежном месте и удалить его из файла xe.rsp.

Установка Application Express

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

В файле oracle_env.sh содержатся переменные окружения, необходимые для работы клиента SQL*Plus, добавим инициализацию этого файла в параметры bash и применим к текущему окружению:

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

Из консоли SQL*Plus необходимо запустить следующие скрипты:

Последний скрипт @apxchpwd меняет пароль учетной записи admin для Application Express. Следующий шаг в какой-то мере небезопасен, используйте его только когда это действительно необходимо: этой командой разрешаются удаленные подключения к Listener (с использованием SQL-клиентов или различного другого софта), использующего по умолчанию порт 1521:

Рекомендую ограничить подключения к этому порту соответствующим правилом iptables.
При подключении к Listener через интернет, к примеру, с использованием SQL Developer, логины/пароли/запросы передаются в открытом виде. Чтобы этого избежать, необходимо использование SSH-туннеля либо VPN.

Из консоли SQL*Plus изменим другие важные параметры: максимальное число сессий, процессов, т.к. эти параметры не динамические, понадобится рестарт базы. Также перейдем от режима Onlinelog к режиму Archivelog и увеличим лимит дискового пространства, доступного для бэкапов.

Резервное копирование

Бэкапы мы кладём на отдельный том. Для этого воспользуемся услугой Volumes хостинга Digital Ocean и после подключения нового раздела к VPS, выполним следующие команды:

Эти команды создают файловую систему, папку для монтирования диска, прописывают параметры автомонтирования при загрузке в файл /etc/fstab и меняют владельцев папки для бэкапов. Запускаем консоль SQL*Plus и меняем параметры резервного копирования:

Для начала мы воспользуемся предустановленным скриптом, осуществляющим резервное копирование с окном восстановления в 2 дня. Первый запуск мы осуществим из консоли, но в дальнейшем будет необходимо добавить этот скрипт в cron пользователя oracle:

После всех изменений нужно будет перезагрузить сервер. Для запуска сервиса oracle-xe вручную и включения в автозагрузку пригодятся следующие команды:

Настройка веб-сервера

Для того, чтобы весь трафик шифровался, я решил использовать Nginx.
Его установка предельно проста:

Затем необходимо скопировать на сервер SSL-сертификаты и внести изменения в конфигурационный файл веб-сервера, либо создать новый с расширением .conf в папке /etc/nginx/conf.d/. Туда необходимо добавить следующие строки, изменив пути к сертификатам и указав соответствующее доменное имя:

содержимое файла /etc/nginx/reverse_proxy.conf:

Пояснения: при переходе по адресу http://example.com/ будет происходить редирект на http://example.com/app/f?p=101, этот адрес будет обработан директивой proxy_pass, которая перенаправит трафик на http://127.0.0.1:8080/apex с указанием соответствующего номера веб-приложения, в данном случае 101.
Не забудьте проверить конфигурацию, затем запустить веб-сервер и включить его в автозагрузку:

На этом установка Oracle Application Express закончена. В следующей статье мы установим тестовое веб-приложение, а затем сделаем что-нибудь по-настоящему полезное.

Update. В связи с пожеланиями, в статью добавлено описание фронтенда, который обеспечивает TLS-шифрование.

Буду искренне рад Вашим комментариям, замечаниям, вопросам.

источник

4.5 Downloading and Installing Oracle Application Express

Learn about downloading and installing Oracle Application Express.

How you install Oracle Application Express depends upon by the type of database you into which you are installing. This section describes how to download and install Oracle Application Express.

  • Installing Application Express
    Install Oracle Application Express by downloading a ZIP file from the Oracle Application Express download page.
  • Creating or Updating Your Instance Administration Account
    Learn how to create or update Instance Administrator account.
  • Restarting Processes
    Restart the processes that you stopped before you began the installation.
  • Configuring the APEX_PUBLIC_USER Account
    It is important to correctly configure the APEX_PUBLIC_USER account to enable proper operation of Oracle Application Express.

4.5.1 Installing Application Express

Install Oracle Application Express by downloading a ZIP file from the Oracle Application Express download page.

Читайте также:  Установка webasto на toyota highlander

To install Oracle Application Express:

  1. For installations where the development will be in English only, download the file apex_5.1_en.zip from the Oracle Application Express download page. If the development will include languages other than English, download apex_5.1.zip from the Oracle Application Express download page. See:

Note that the actual file name may differ if a more recent release has shipped since this document was published.

If English only, unzip apex_5.1_en.zip as follows, preserving directory names:

UNIX and Linux: $ unzip apex_5.1_en.zip

Windows: Double click the file apex_5.1_en.zip in Windows Explorer

If multiple languages, unzip apex_5.1.zip as follows, preserving directory names:

UNIX and Linux: $ unzip apex_5.1.zip

Windows: Double click the file apex_5.1.zip in Windows Explorer

You should keep the directory tree where you unzip the files short and not under directories that contain spaces. For example, within Windows unzip to C:\TEMP .

Full development environment provides complete access to the App Builder environment to develop applications. A Runtime environment enables users to run applications that cannot be modified.

Available installation options include:

Full development environment . Run apexins.sql passing the following four arguments in the order shown:

tablespace_apex is the name of the tablespace for the Oracle Application Express application user.

tablespace_files is the name of the tablespace for the Oracle Application Express files user.

tablespace_temp is the name of the temporary tablespace or tablespace group.

images is the virtual directory for Oracle Application Express images. For installations using EPG, /i/ is the required value for the images argument. To support future Oracle Application Express upgrades, define the virtual image directory as /i/ .

If you receive the following error, exit SQL*Plus and change your working directory to where you unzipped the installation file, for example C:\TEMP in Windows, before starting SQL*Plus:

SP2-0310: unable to open file «apexins.sql «

Runtime environment . Run apxrtins.sql passing the following arguments in the order shown:

tablespace_apex is the name of the tablespace for the Oracle Application Express application user.

tablespace_files is the name of the tablespace for the Oracle Application Express files user.

tablespace_temp is the name of the temporary tablespace or tablespace group.

images is the virtual directory for Oracle Application Express images. To support future Oracle Application Express upgrades, define the virtual image directory as /i/ .

When Oracle Application Express installs, it creates three new database accounts:

APEX_050100 — The account that owns the Oracle Application Express schema and metadata.

FLOWS_FILES — The account that owns the Oracle Application Express uploaded files.

APEX_PUBLIC_USER — The minimally privileged account is used for Oracle Application Express configuration with Oracle REST Data Services or Oracle HTTP Server and mod_plsql .

If you configured RESTful Web services, then these additional accounts will be created:

APEX_REST_PUBLIC_USER — The account used when invoking RESTful Services definitions stored in Oracle Application Express.

APEX_LISTENER — The account used to query RESTful Services definitions stored in Oracle Application Express.

If you are upgrading from a previous release, then FLOWS_FILES already exists and APEX_PUBLIC_USER is created if it does not already exist.

«Configuring Password Protection in Oracle Database Security Guide «

Oracle Application Express must be installed from a writable directory on the file system. See «Reviewing a Log of an Installation Session»

4.5.2 Creating or Updating Your Instance Administration Account

Learn how to create or update Instance Administrator account.

This section describes how to create or update your Instance Administrator account.

Skip this section if you are upgrading from a previous release of Oracle Application Express. In an upgrade scenario, the Instance Administrator account and password is preserved and carried over from the prior release.

  • What Is an Instance Administrator?
    Instance administrators are superusers that are responsible for managing an entire Oracle Application Express instance, including managing workspace provisioning, configuring features and instance settings, and managing security.
  • About apxchpwd.sql
    Running the apxchpwd.sql script enables you to create or update your Instance Administrator account.
  • Running apxchpwd.sql
    Run the apxchpwd.sql script to create and update your Instance Administrator account.

4.5.2.1 What Is an Instance Administrator?

Instance administrators are superusers that are responsible for managing an entire Oracle Application Express instance, including managing workspace provisioning, configuring features and instance settings, and managing security.

To perform these tasks, an Instance administrator signs in to the Oracle Application Express Administration Services application.

«Oracle Application Express Administration Services» in Oracle Application Express Administration Guide

4.5.2.2 About apxchpwd.sql

Running the apxchpwd.sql script enables you to create or update your Instance Administrator account.

You must run the apxchpwd.sql script in the following scenarios:

New Oracle Application Express installations — Run apxchpwd.sql to create an Instance Administrator account and password.

Converting of a runtime environment to a development environment — Run apxchpwd.sql to change the Instance Administrator account password.

Changing Your Instance Administrator Password -Run apxchpwd.sql to change the password for an existing Instance Administrator account.

Unlocking Your Instance Administrator Account — Run apxchpwd.sql to unlock an existing Instance Administrator account.

You do not need to run apxchpwd.sql when upgrading from a previous release of Oracle Application Express. In an upgrade scenario, the Instance Administrator account password is preserved and carried over from the prior release.

4.5.2.3 Running apxchpwd.sql

Run the apxchpwd.sql script to create and update your Instance Administrator account.

To create or update your Instance Administrator account:

  1. Change your working directory to the apex directory where you unzipped the installation software.
  2. Start SQL*Plus and connect to the database where Oracle Application Express is installed as SYS specifying the SYSDBA role. For example:
Читайте также:  Установка поводков дворников на приору

Follow the on-screen instructions. You will be prompted provide a username, password, and email address. If the account username does not exist, it will be created for you.

4.5.3 Restarting Processes

Restart the processes that you stopped before you began the installation.

After you install Oracle Application Express, you must restart the processes that you stopped before you began the installation.

4.5.4 Configuring the APEX_PUBLIC_USER Account

It is important to correctly configure the APEX_PUBLIC_USER account to enable proper operation of Oracle Application Express.

  • About the APEX_PUBLIC_USER Account
    The APEX_PUBLIC_USER account is created with a random password in a new installation of Oracle Application Express.
  • Unlocking the APEX_PUBLIC_USER Account
    Unlock the APEX_PUBLIC_USER account by running a SQL statement.
  • Changing the Password for the APEX_PUBLIC_USER Account
    Change the password for the APEX_PUBLIC_USER account by running a SQL statement.
  • About Password Expiration in Oracle Database 11g and Later
    You can set PASSWORD_LIFE_TIME parameter to unlimited by altering APEX_PUBLIC_USER to prevent password expiration. To do this create another profile in which the PASSWORD_LIFE_TIME parameter is set to unlimited and alter the APEX_PUBLIC_USER account and assign it to the new profile.

4.5.4.1 About the APEX_PUBLIC_USER Account

The APEX_PUBLIC_USER account is created with a random password in a new installation of Oracle Application Express.

You must change the password for this account before configuring the database access descriptor (DAD) in a new installation.

4.5.4.2 Unlocking the APEX_PUBLIC_USER Account

Unlock the APEX_PUBLIC_USER account by running a SQL statement.

If you are upgrading from a prior release of Oracle Application Express, this step is unnecessary.

To unlock the APEX_PUBLIC_USER account:

  1. Start SQL*Plus and connect to the database where Oracle Application Express is installed as SYS specifying the SYSDBA role. If Oracle Application Express is installed in the CDB, ensure you connect to CDB$ROOT . For example:

4.5.4.3 Changing the Password for the APEX_PUBLIC_USER Account

Change the password for the APEX_PUBLIC_USER account by running a SQL statement.

If you are upgrading from a prior release of Oracle Application Express, this step is unnecessary.

To change the password for the APEX_PUBLIC_USER account:

  1. Start SQL*Plus and connect to the database where Oracle Application Express is installed as SYS specifying the SYSDBA role. If Oracle Application Express is installed in the CDB, ensure you connect to CDB$ROOT . For example:

Where new_password is the new password you are setting for APEX_PUBLIC_USER . You will use this password when creating the DAD in the sections that follow.

4.5.4.4 About Password Expiration in Oracle Database 11 g and Later

You can set PASSWORD_LIFE_TIME parameter to unlimited by altering APEX_PUBLIC_USER to prevent password expiration. To do this create another profile in which the PASSWORD_LIFE_TIME parameter is set to unlimited and alter the APEX_PUBLIC_USER account and assign it to the new profile.

In the default profile in Oracle Database 11 g , the parameter PASSWORD_LIFE_TIME is set to 180. If you are using Oracle Database 11 g with Oracle Application Express, this causes the password for APEX_PUBLIC_USER to expire in 180 days. As a result, your Oracle Application Express instance will become unusable until you change the password.

Oracle Database Security Guide for information on creating profiles and assigning them to database users

источник

Вышла Oracle Database 18c XE


Свершилось! Можно открывать шампанское и закатывать вечеринку — спустя более, чем 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 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, существующие только в рамках текущей сессии.

И это далеко не всё, а только то, что радует лично меня и чем я обязательно воспользуюсь. Полный список изменений можно посмотреть в официальной документации:

источник

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