Установка 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:
yum update -y && yum install screen vim bash-completion wget telnet mailx unzip epel-release -y && yum install bc libaio flex -y
dd if=/dev/zero of=/var/swapfile bs=1M count=2048 && chmod 0600 /var/swapfile && mkswap /var/swapfile
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab && swapon -a && swapon -s

Наступний крок — опціональний. Можна сконвертувати Centos в Oracle Linux, потім завантажити пакет, змінює налаштування ядра згідно з рекомендаціями Oracle, подробиці можна прочитати тут.
curl -O https://linux.oracle.com/switch/centos2ol.sh && sh centos2ol.sh && yum distro-sync -y && yum install oracle-rdbms-server-11gR2-preinstall.x86_64 -y

Для завантаження дистрибутива Oracle XE (доступны версії під Windows і Linux) знадобиться реєстрація на сайті вендора, вона безкоштовна і ні до чого не зобов'язує. Завантажити zip-архів, распакуем його і встановимо:
wget [[вставити сюди посилання для завантаження]]
mv oracle-xe-11* oracle-xe-11.x86_64.rpm.zip
mkdir oracle-xe && mv oracle-xe-* oracle-xe/ && cd oracle-xe/
unzip oracle-xe-* && cd Disk1/
rpm -ivh oracle-xe-*

Після установки RPM-пакету необхідно запустити oracle-xe з параметром configure — у цьому випадку запуститься майстер завершення налаштування, в інтерактивному режимі задає питання. Також доступна установка з використанням файлу відповідей, який ми внесемо порти за замовчуванням і пароль облікового запису SYS:
echo "ORACLE_HTTP_PORT=8080" > /root/oracle-xe/Disk1/response/xe.rsp
echo "ORACLE_LISTENER_PORT=1521" >> /root/oracle-xe/Disk1/response/xe.rsp
echo "ORACLE_PASSWORD=[[вставити сюди пароль]]" >> /root/oracle-xe/Disk1/response/xe.rsp
echo "ORACLE_CONFIRM_PASSWORD=[[повторіть пароль]]" >> /root/oracle-xe/Disk1/response/xe.rsp
echo "ORACLE_DBENABLE=y" >> /root/oracle-xe/Disk1/response/xe.rsp
/etc/init.d/oracle-xe configure responseFile=/root/oracle-xe/Disk1/response/xe.rsp

Після установки з використанням файлу відповідей, не забудьте зберегти пароль у надійному місці і видалити його з файлу xe.rsp.
Установка Application Express
Необхідно завантажити на сервер дистрибутив, який також доступний після реєстрації на сайті. Завантаження і розпакування:
cd ~ 
wget -O apex_5.zip [[вставити сюди посилання для завантаження]]
mkdir apex5 && mv apex_5.zip apex5/ && cd apex5/ && unzip apex_5.zip

У файлі oracle_env.sh містяться змінні оточення, необхідні для роботи клієнта SQL*Plus, додамо ініціалізацію цього файлу параметри bash і застосуємо до поточного оточенню:
echo ". /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh" >> /etc/bashrc
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Приступимо до оновлення. Підготуйте пароль, який використовувався у файлі відповідей і введіть його — це необхідно для підключення до бази під обліковим записом SYS:
cd apex/ && sqlplus sys as sysdba

З консолі SQL*Plus необхідно запустити наступні сценарії:
@apexins SYSAUX SYSAUX TEMP /i/
@apxldimg /root/apex5
@apxchpwd [[enter]]
Enter the administrator's username [ADMIN] [[enter]]
User "ADMIN" exists.
Enter admin's email [ADMIN] [[enter]]
Enter admin's password [] [[сюди потрібно вставити інший довгий пароль]]
Password Changed instance of administrator ADMIN.

Останній скрипт @apxchpwd змінює пароль облікового запису admin для Application Express. Наступний крок в якійсь мірі небезпечний, використовуйте його тільки коли це дійсно необхідно: цією командою вирішуються віддалені підключення до Listener (з використанням SQL-клієнтів або різного іншого софта), що використовує за замовчуванням порт 1521:
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

Рекомендую обмежити підключення до порту відповідним правилом iptables.
При підключенні до Listener через інтернет, наприклад, з використанням SQL Developer, логіни/паролі/запити передаються у відкритому вигляді. Щоб цього уникнути, необхідно використання SSH-тунель або VPN.
З консолі SQL*Plus змінимо інші важливі параметри: максимальна кількість сесій, процесів, оскільки ці параметри не динамічні, знадобиться рестарт бази. Також перейдемо від режиму Onlinelog до режиму Archivelog і збільшимо ліміт дискового простору, доступного для бекапів.
alter system set sessions=250 scope=spfile;
alter system set processes=200 scope=spfile;
shutdown normal
startup mount
alter database archivelog;
alter database open;

Резервне копіювання
Бекапи ми кладемо на окремий том. Для цього скористаємося послугою Volumes хостингу Digital Ocean і після підключення нового розділу до VPS, виконаємо наступні команди:
mkfs.ext4 -F /dev/disk/by-id/scsi-0DO_Volume_oracle-backups-volume
mkdir -p /opt/oracle-backups
echo "/dev/disk/by-id/scsi-0DO_Volume_oracle-backups-volume /opt/oracle-backups ext4 defaults,nofail,discard 0 0" | tee -a /etc/fstab
mount -a
chown oracle:dba /opt/oracle-backups

Ці команди створюють файлову систему, папку для монтування диска, прописують параметри автоматичного монтування при завантаженні в файл /etc/fstab і міняють власників папки для бекапів. Запускаємо консоль SQL*Plus і змінюємо параметри резервного копіювання:
sqlplus sys as sysdba
alter system set DB_RECOVERY_FILE_DEST_SIZE = 20G;
alter system set DB_RECOVERY_FILE_DEST = '/opt/oracle-backups';

Для початку ми скористаємося встановленим скриптом, що здійснює резервне копіювання з вікном відновлення в 2 дні. Перший запуск ми здійснимо з консолі, але надалі необхідно додати цей скрипт в cron користувача oracle:
su - oracle
bash /u01/app/oracle/product/11.2.0/xe/config/scripts/backup.sh

Після всіх змін потрібно буде перезавантажити сервер.
На цьому установка Oracle Application Express закінчена. У наступній статті ми встановимо тестове веб-додаток, а потім зробимо що-небудь по-справжньому корисне.
Буду щиро радий Вашим коментарям, зауважень, питань.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.