Pretius: strategiczna fuzja jako odpowiedź na współczesne wyzwania
Pretius. Budujemy mądrzej:
strategiczna fuzja jako odpowiedź na współczesne wyzwania

Oracle 23c darmowy Docker, APEX i ORDS – wszystko w jednym prostym przewodniku

Matt Mulvaney

CEO of Pretius UK

  • 4 maja, 2023

Spis

Zastrzeżenie: Ten artykuł został pierwotnie opublikowany w maju 2023 roku. Jednak w marcu 2024 roku został zaktualizowany o nową treść – zautomatyzowany skrypt, który pozwala skonfigurować wszystko w jednym kroku. Zaktualizowane informacje znajdują się na samym początku, ale jeśli wolisz metodę manualną, znajdziesz ją w dalszej części artykułu.

[Uwaga] Ten artykuł został pierwotnie przygotowany w języku angielskim i został przetłumaczony na język polski.

(Aktualizacja) Konfiguracja w jednym kroku

Oryginalny artykuł zawiera kilka kroków, które są podatne na błędy manualne. Kopiowanie i wklejanie wymaganego kodu bywa też dość czasochłonne. Z tego powodu przygotowałem aktualizację, która pozwoli Ci zrobić dokładnie to samo w zaledwie jednym kroku. Po prostu skopiuj i wklej poniższy kod, wróć po lunchu, a Twoje gotowe do pracy środowisko APEX będzie na Ciebie czekać.

Wymagania wstępne

Będziesz potrzebować narzędzia Podman, Docker lub Docker-ce dla systemu Windows, Unix lub Mac (użytkownicy komputerów Mac powinni najpierw przeczytać to).

Jeśli uruchamiasz to na instancji instancji OCI compute, będziesz musiał otworzyć porty 8521, 8500, 8023, 9043 i 9922. W przeciwnym razie zignoruj ten krok.

Zanim zaczniesz: obraz Dockera z wersją 23c na niektórych systemach operacyjnych może uruchamiać się powoli, zanim bazy PDB staną się operacyjne. Oznacza to opóźnienie w pomyślnej instalacji APEX. Pamiętaj więc o jednym z kroków z poniższego poradnika (tym o pójściu na kawę) – na pewno się przyda!

Nigdy nie napotkałem takiego problemu na maszynie Oracle Cloud Compute. W tym jednym kroku skrypt nie zrobi kawy ani Tobie, ani sobie – to ulepszenie, które może wprowadzę w przyszłości.

Pojedynczy krok (The Single Step)

Oto on. Po prostu wklej poniższy kod do swojego terminala / wiersza poleceń. Komenda powinna działać w systemach Windows, Unix i Mac (ponownie: użytkownicy Maców, czytacie to?). Dla jasności: ja uruchamiam to na systemie Unix w Oracle Cloud Compute z darmowym 50 GB Block Volume.

docker create -it --name 23cfree -p 8521:1521 -p 8500:5500 -p 8023:8080 -p 9043:8443 -p 9922:22 -e 
ORACLE_PWD=E container-registry.oracle.com/database/free:latest
curl -o unattended_apex_install_23c.sh 
https://raw.githubusercontent.com/Pretius/pretius-23cfree-unattended-apex-installer/main/src/unattended_apex_install_23c.sh
curl -o 00_start_apex_ords_installer.sh 
https://raw.githubusercontent.com/Pretius/pretius-23cfree-unattended-apex-installer/main/src/00_start_apex_ords_installer.sh
docker cp unattended_apex_install_23c.sh 23cfree:/home/oracle
docker cp 00_start_apex_ords_installer.sh 23cfree:/opt/oracle/scripts/startup
docker start 23cfree

Jeśli pracujesz na Uniksie, uruchom również to, aby kontener działał po zamknięciu połączenia:

loginctl enable-linger $UID

Teraz poczekaj około 20 minut (i dodatkowe 15, jeśli wcześniej nie pobierałeś obrazu Dockera – zostanie pobrany automatycznie). Możesz monitorować proces instalacji za pomocą następującej komendy (ale poczekaj z minutę przed jej uruchomieniem):

docker exec -it 23cfree /bin/bash
 tail -f /home/oracle/unattended_apex_install_23c.log

U mnie proces trwał 16m 40s (miałem już pobrany obraz Dockera), aż w końcu wyświetlił się komunikat ### APEX INSTALLED ###.

Kiedy skończysz, użyj Ctrl+C, aby wyjść z monitorowania logów i przejdź pod adres http://localhost:8023/ords/apex, aby sprawdzić efekt.

Jeśli kiedykolwiek zrestartujesz Dockera, APEX będzie z powrotem gotowy do pracy w około 60 sekund. Skrypt nie będzie ponownie uruchamiał instalacji typu unattended.

Dane logowania (Credentials)

APEX Internal Workspace:

  • User: ADMIN
  • Password: OrclAPEX1999!

Wszystko inne, np. ORDS_PUBLIC_USER, APEX_PUBLIC_USER, SYS, itd.:

  • Password: E

I to właściwie tyle – miłej zabawy! Skrypt konfiguracyjny jest open source, więc śmiało go forkujcie. Repozytorium znajdziecie tutaj. Jeśli – z jakiegoś powodu – chcecie przejść przez ten proces manualnie, oryginalne kroki znajdziecie poniżej.

(Oryginalny artykuł) Konfiguracja manualna

Zainstaluj i uruchom Dockera

Po pierwsze, oto rzeczy, których będziesz potrzebować:

Właściwie nie musisz teraz niczego pobierać – powiem Ci, jak zrobić to szybko z poziomu wiersza poleceń.

Jeśli masz już uruchomionego Dockera, możesz pominąć pierwszą sekcję dotyczącą instalacji i przejść od razu do kolejnych kroków (sekcja „Jak sprawić, by Docker współpracował z APEX”).

Jeśli nie masz zainstalowanego Dockera, przejdź przez poniższe kroki. Szczegóły będą się różnić w zależności od wybranej platformy/systemu operacyjnego.

  • Dla komputerów Mac: najpierw musisz zainstalować Brew/Colima/Docker – możesz postępować zgodnie z instrukcjami w tym poradniku mojego kolegi Rafała Grzegorczyka.
  • Dla Windows: proces jest naprawdę prosty, więc po prostu upewnij się, że Docker działa i uruchom Docker Desktop.
  • Dla systemów Unix: zainstaluj go, wpisując następujące komendy w terminalu:
docker version
sudo yum install docker -y

Po pobraniu Dockera musisz rozpakować dane. Otwórz wiersz poleceń (terminal lub Windows+R, cmd) i wpisz poniższą komendę. Zajmie to około 15 minut i rozpakuje się do 10,5 GB na dysku.

docker pull container-registry.oracle.com/database/free:latest

Oto jak będzie to wyglądać po zakończeniu:

A screenshot showing the console.

Teraz pozostaje tylko uruchomić Dockera. Możesz to zrobić za pomocą poniższej komendy. Zauważ, że zmieniłem porty na 8xxx, aby uniknąć konfliktów z innymi moimi obrazami Dockera.

docker run -d -it --name 23cfree -p 8521:1521 -p 8500:5500 -p 8023:8080 -p 9043:8443 
-e ORACLE_PWD=E container-registry.oracle.com/database/free:latest

Skonfiguruj Dockera do pracy z Oracle APEX

Przed Tobą 25 kroków, które musisz wykonać, aby wszystko zadziałało. Proces jest całkiem przejrzysty.

1. Wejdź do basha

Wpisz następującą komendę:

docker exec -it 23cfree /bin/bash

2. Pobierz APEX

Użyj tej komendy (zajmie to około minuty):

curl -o apex-latest.zip https://download.oracle.com/otn_software/apex/apex-latest.zip

3. Rozpakuj i wejdź do katalogu APEX

Użyj tych komend:

unzip apex-latest.zip
rm apex-latest.zip
cd apex

4. Pozwól bazie danych „odpocząć” przez kilka minut

Zanim przejdziesz dalej, najlepiej dać systemowi chwilę na ustabilizowanie się. Możesz w tym czasie zaparzyć sobie kawę!

5. Otwórz SQL*Plus za pomocą sqlplus / as sysdba

Komenda wygląda tak:

bash-4.4$ sqlplus / as sysdba
SQL*Plus: Release 23.0.0.0.0 - Developer-Release on Wed Apr 5 13:27:32 2023 Version 23.2.0.0.0
Copyright (c) 1982, 2023, Oracle. All rights reserved.
Connected to: Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release Version 23.2.0.0.0

6. Uruchom instalator APEX

Użyj poniższej komendy:

ALTER SESSION SET CONTAINER = FREEPDB1;
@apexins.sql SYSAUX SYSAUX TEMP /i/

Instalacja potrwa około 10 minut. Jeśli pojawi się błąd PLS-00201: identifier 'SYS.DBMS_DB_VERSION’ must be declared, po prostu ponawiaj ten krok do skutku. Po chwili system się uspokoi.

7. Odblokuj konto użytkownika publicznego

Oto komenda:

ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY E;

8. Zmień hasło

Uruchom komendę i postępuj zgodnie z instrukcjami:

@apxchpwd.sql

Pamiętaj, że musisz użyć złożonego hasła, więc wymyśl coś odpowiedniego.

9. Wyjdź z SQL*Plus

Po prostu wpisz:

exit

10. Utwórz następujące foldery

Aby zrobić to szybko, możesz skopiować i wkleić poniższe komendy:

mkdir /home/oracle/software
mkdir /home/oracle/software/apex
mkdir /home/oracle/software/ords
mkdir /home/oracle/scripts

11. Skopiuj obrazy APEX i zmień katalog

Wpisz następujące polecenia:

cp -r /home/oracle/apex/images /home/oracle/software/apex
cd /home/oracle/

12. Zainstaluj sudo

Użyj tej komendy:

su

A następnie tych:

cat /dev/null > /etc/dnf/vars/ociregion
dnf update -y
dnf install sudo -y

13. Zainstaluj nano

Wpisz:

dnf install nano -y

14. Edytuj listę sudoers

Teraz musisz szybko wyedytować listę sudo. Najpierw wpisz:

nano /etc/sudoers

W sekcji Defaults dodaj następujący wpis:

Defaults !lecture

Na samym końcu pliku musisz również dodać to:

oracle ALL=(ALL) NOPASSWD: ALL

Zapisz plik i wyjdź (Ctrl+X).

15. Zainstaluj Javę

Użyj tej komendy:

dnf install java-17-openjdk -y

16. Skonfiguruj foldery ORDS i sprawdź Javę

Oto komendy, które pozwolą szybko wszystko ustawić:

mkdir /etc/ords
mkdir /etc/ords/config
mkdir /home/oracle/logs
chmod -R 777 /etc/ords
java -version

Jeśli wszystko jest w porządku, otrzymasz taki wynik:

openjdk version "17.0.6" 2023-01-17 LTS
OpenJDK Runtime Environment (Red_Hat-17.0.6.0.10-3.el8_7) (build 17.0.6+10-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.6.0.10-3.el8_7) (build 17.0.6+10-LTS, mixed mode, sharing)

17. Będąc nadal zalogowanym jako su, zainstaluj ORDS

Użyj następujących komend:

yum-config-manager --add-repo=https://yum.oracle.com/repo/OracleLinux/OL8/oracle/software/x86_64
dnf install ords -y

18. Skonfiguruj ORDS

Wpisz:

export _JAVA_OPTIONS="-Xms512M -Xmx512M"
ords --config /etc/ords/config install

System wyświetli listę wyboru. Wybierz opcję 3.

Enter a number to select the TNS net service name to use or specify the database connection
   [1] EXTPROC_CONNECTION_DATA SID=PLSExtProc
   [2] FREE         SERVICE_NAME=FREE
   [3] FREEPDB1     SERVICE_NAME=FREEPDB1
   [S] Specify the database connection
 Choose [1]: 3

Następnie zostaniesz poproszony o nazwę użytkownika bazy danych z uprawnieniami administratora. Wybierz SYS i hasło E.

Provide database user name with administrator privileges.
  Enter the administrator username: SYS
Enter the database password for SYS AS SYSDBA: E

Pojawi się następujące menu:

Retrieving information.
ORDS is not installed in the database. ORDS installation is required.

  Enter a number to update the value or select option A to Accept and Continue
    [1] Connection Type: TNS
    [2] TNS Connection: TNS_NAME=FREEPDB1 TNS_FOLDER=/opt/oracle/product/23c/dbhomeFree/network/admin
           Administrator User: SYS AS SYSDBA
    [3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <generate>
    [4] ORDS runtime user and schema tablespaces:  Default: SYSAUX Temporary TEMP
    [5] Additional Feature: Database Actions
    [6] Configure and start ORDS in Standalone Mode: Yes
    [7]    Protocol: HTTP
    [8]       HTTP Port: 8080
    [9]   APEX static resources location:
    [A] Accept and Continue - Create configuration and Install ORDS in the database
    [Q] Quit - Do not proceed. No changes
  Choose [A]:

Wybierz opcję 9 – APEX static resources location. Gdy zostaniesz poproszony, wpisz:

/home/oracle/software/apex/images

Wpisz „A”, aby kontynuować. ORDS przejdzie do konfiguracji. Zajmie to 1-2 minuty, aż w końcu zobaczysz poniższy komunikat:

<code class="lang-plaintext">2024-04-15T15:30:27.922Z INFO        Oracle REST Data Services initialized
Oracle REST Data Services version : 24.1.0.r0960841
Oracle REST Data Services server info: jetty/10.0.20
Oracle REST Data Services java info: OpenJDK 64-Bit Server VM 17.0.10+7-LTS

19. Zrób szybki test i zamknij ORDS

Uruchom adres http://localhost:8023/ords/apex w innej zakładce przeglądarki – jeśli wszystko zostało skonfigurowane poprawnie, powinieneś zobaczyć ekran logowania APEX, taki jak na zrzucie poniżej.

A screenshot showing APEX login screen.

Możesz już zamknąć tę zakładkę. Teraz zamknij ORDS w terminalu, używając Ctrl+C.

Dla Twojej informacji: przed wersją ORDS 23.2 (szczegóły tutaj) używało się po prostu adresu localhost:8023/ords.

20. Utwórz plik start_ords.sh

Użyj tej komendy:

nano /home/oracle/scripts/start_ords.sh

Następnie wklej poniższy kod:

export ORDS_HOME=/usr/local/bin/ords
export _JAVA_OPTIONS="-Xms512M -Xmx512M"
LOGFILE=/home/oracle/logs/ords-date +"%Y""%m""%d".log
nohup ${ORDS_HOME} --config /etc/ords/config serve >> $LOGFILE 2>&1 & echo "View log file with : tail -f $LOGFILE"

21. Utwórz plik stop_ords.sh

Zacznij od tej komendy:

nano /home/oracle/scripts/stop_ords.sh

I wklej to:

kill ps -ef | grep [o]rds.war | awk '{print $2}'

Jeśli kiedykolwiek będziesz potrzebował użyć tych skryptów ręcznie, możesz je uruchomić tymi poleceniami (ale nie rób tego teraz!):

sh /home/oracle/scripts/start_ords.sh
sh /home/oracle/scripts/stop_ords.sh

22. Utwórz skrypt startowy ORDS

Użyj komendy:

nano /opt/oracle/scripts/startup/01_auto_ords.sh

Wklej poniższe:

sudo sh /home/oracle/scripts/start_ords.sh

23. Jeśli używasz Dockera na Uniksie, włącz „linger”

Ten krok nie jest wymagany na systemach Windows/Mac, ale jest niezbędny na Uniksie, aby zapobiec zabijaniu procesów użytkownika po zakończeniu sesji. Aby to zrobić, uruchom:

loginctl enable-linger $UID

24. Zatrzymaj kontener Dockera i uruchom go ponownie

Możesz po prostu użyć interfejsu graficznego lub wpisać:

docker restart 23cfree

Robi się to, aby aktywować skrypt autostartu ORDS utworzony we wcześniejszych krokach.

25. Poczekaj chwilę i spróbuj się zalogować

Odczekaj przynajmniej 60 sekund i spróbuj zalogować się pod adresem http://localhost:8023/ords/apex. Użyj następujących danych:

Workspace > INTERNAL
Username > ADMIN
Password > Twoje Złożone Hasło

Podsumowanie

An image showing APEX log-in screen.

I to wszystko! Jak widzisz, proces był całkiem łatwy i niezbyt czasochłonny. Zajęło to pewnie… około 30 minut łącznie? Jeśli wszystko zostało skonfigurowane poprawnie, powinieneś wejść do APEX-a bez żadnych problemów. Jeśli masz pytania, zawsze możesz do mnie napisać na adres mmulvaney@pretius.com. Jeśli interesuje Cię Oracle APEX, sprawdź też inne moje artykuły na tym blogu:

  1. Oracle APEX tutorial: Uncover Oracle’s best-kept low-code secret
  2. Interactive Grid duplicate values – Learn How to prevent a common problem using a Zero-JavaScript approach
  3. Oracle APEX new features – the low-code platform keeps evolving
  4. How the Oracle APEX community helps shape the platform’s future
  5. Oracle APEX Global Notification messages: An easy way to make them look better

 

Szukasz firmy tworzącej oprogramowanie?

Pracuj z zespołem, który pomógł już dziesiątkom rynkowych liderów. Umów spotkanie, by dowiedzieć się:

  • Jak działają nasze produkty
  • Jak możesz oszczędzić czas i pieniądze
  • Czym nasze rozwiązania różnią się od konkurencji

Przebieg kontaktu z Pretius

Dbamy o bezpieczeństwo Twoich danych: Certyfikat ISO

Działamy zgodnie z normą ISO 27001, zapewniając najwyższy poziom bezpieczeństwa Twoich danych.
certified dekra 27001
© 2026 Pretius. All right reserved.