2024年10月16日水曜日

Apple M Series + VirtualBox + Oracle Database Freeの組み合わせでOracle APEXを構成する #JoelKallmanDay

2024年9月16日に、Oracle Database 23ai FreeのARM版のRPMがリリースされています。また、2024年9月11日に、Apple Silicon hosts向けのVirtualBoxもリリースされています。これらを使って、Apple MシリーズのmacOS Sequoia上にOracle Linuxの仮想マシンを作成し、Oracle APEXをインストールしてみます。

アーキテクチャはARM(aarch64)ですが、手順はIntel版での以下の記事とほとんど同じです。

Oracle APEXの環境作成(0) - はじめに

この記事の1から6の作業までの作業記録になります。インストール作業は、以下のマシンで実施しています。

MacBook Pro, チップ Apple M1 Max, メモリ 64GB, macOS Sequoia 15.0.1


VirtualBoxをインストールする



VirtualBoxのダウンロード・ページを開きます。

2024年10月15日現在の最新バージョンは7.1.2です。macOS / Apple Silicon hostsをクリックし、macOS用のdmgファイルをダウンロードします。VirtualBox Extension Packは、Oracle DatabaseとAPEXを動かす分には必要ないので、今回の手順ではインストールしません。

ただし、Oracle Cloudとの統合機能はExtension Packに含まれます。


ダウンロードされたdmgファイルVirtualBox-7.1.2-164945-macOSArm64.dmgを、ダブルクリックして開きます。

VirtualBox.pkgのイメージをダブルクリックし、VirtualBoxをインストールします。

以降の作業は、macOSでの一般的なソフトウェアのインストール手順になります。


VirtualBoxのインストールが完了すると、アプリケーションとして追加されます。

多分、バージョン7.1からだと思うのですが、アイコンが今風になっています。また、以前はOracle VM VirtualBoxと呼んでいたと思うのですが(oracle.com以下のページは今でもOracle VM VirtualBoxですが、ダウンロードできるバージョンは7.0から更新されていません)、今は単にOracle VirtualBoxまたはVirtualBoxのみで、Oracle色が薄まった印象を受けます。



Oracle Linuxの仮想マシンを作成する



Oracle Linux 8のARM版(aarch64)のインストール・メディアをダウンロードします。

Oracle Linux Arm (aarch64) ISOs以下のRelease 8.xで、最新のFull ISOをダウンロードします。

2024年10月15日現在での最新はRelease 8.10でした。

このメディアからOracle Linux 8の仮想マシンを作成します。


VirtualBoxマネージャーを起動し、ようこその画面を開きます。


新規をクリックし、仮想マシンの作成を開始します。


作成する仮想マシンの名前OracleAPEXとします。ISOイメージは先ほどダウンロードしたLinuxのインストール・メディアを選択します。自動インストールはしないので、自動インストールをスキップチェックします。

ハードウェアをクリックして開きます。


Oracle Database 23ai Free、Oracle APEX、Oracle REST Data Servicesを動作させるために必要な最低限のメモリー量は4096MBだと思いますが、ホストのメモリに余裕があるため、メインメモリー8192MBにしています。最低限必要なプロセッサー数は2ですが、余裕を持って4としています。

仮想マシンでのEFIの効果が不明なため、EFIを有効化(一部のOSのみ)チェックは外しています。

ハードディスクを開きます。


仮想ハードディスクを作成するを選択します。ハードディスクファイルのサイズ50.00 GBを指定します。

ハードディスクのファイルタイプVDI(VirtualBox Disk Image)全サイズの事前割当てチェックしません

以上の設定し、完了をクリックします。


仮想マシンが作成されます。オペレーティング・システムはまだインストールされていません。

今後の作業をし易くするため、ディスプレイ表示倍率を設定します。

ディスプレイをクリックします。


ディスプレイの表示倍率200%に変更し、OKをクリックします。


以上で仮想マシンの作成は完了です。


仮想マシンにLinuxをインストールする



仮想マシンを起動します。

インストール・メディアが刺さっているため、仮想マシンが起動するとOracle Linuxのインストーラーが実行されます。


インストーラーの起動画面が表示されます。

通常VirtualBoxでは、マウス・ポインタを仮想マシンに割り当てた後にホストにポインタを戻すには、明示的なキー入力(macOSのデフォルトでは、画面に右下に表示されている Left ⌘)が必要です。ただし、VirtualBox V7.1とARM版のOracle Linux 8の組み合わせでは、特別な設定なしで仮想マシンとホストの間のマウス操作が統合されているため、Left ⌘を入力する必要はありません。

60秒経過すると自動的にオペレーティング・システムのインストールが開始されます。待機をスキップすることもできますが、操作に慣れていないのであれば60秒待った方がよいでしょう。


オペレーティング・システムのインストールが開始されると、コンソールに色々とメッセージが表示されます。メディアのチェックはEscを入力するとスキップできますが、VirtualBoxのキーボード操作に慣れていない場合は、そのまま待っているのが良いでしょう。

それほど時間はかかりません。


そのまま待っているとGUIのインストーラが起動します。

マウス統合と画面上のポインタの表示に少々難があり、画面右に表示されるメッセージの消去するアイコン上にポインタを合わせる際に、ポインタが表示されません。

ウィンドウのタイトル部分であればポインタが表示されます。

メッセージを消去するアイコンのすこし上にある、タイトル部分にポインタを移動するとポインタが表示されます。そこで位置を確認し、そこから少し下へポインタを移動したのちクリックして、メッセージを消去します。


最初に言語の選択があるので、キーボードのレイアウトus言語English(United States)を選択します。Oracle APEXのインストール後は仮想マシンにログインして作業することはほとんどありませんし、ここで日本語を選択すると、インストール中の画面の表示が崩れたり、日本語名のディレクトリが作成されたりと、あまり嬉しいことがありません。

設定は変更せずにContinueをクリックします。


インストールするオペレーティング・システムを構成します。

Time & DateRoot PasswordSoftware SelectionInstallation DestinationNetwork & Host Nameについて構成します。


Time & DateRegionAsiaCityTokyoを選択します。地図上で東京の近くをクリックすると、自動的に設定されます。

設定したのちに、Doneをクリックします。


Root Passwordを設定します。Root Passwordへのパスワードの入力と、それと同じ文字列をConfirmに入力します。

文字列として脆弱なパスワードの場合は、Done2回クリックして確定する必要があります。


Software SelectionとしてMinimal Installを選択します。Oracle Databaseのインストールに必要なRPMパッケージは、オラクルが提供している事前インストール用のRPMをインストールすると依存関係も考慮した上ですべてインストールされます。そのため、ここでは最小限の指定で十分です。


Installation Destinationを開きます。Storage ConfigurationAutomaticであることを確認し、自動的に決まるディスク・レイアウトを採用します。

デフォルトの設定を使用します。確認のみで何も操作は行わずDoneをクリックします。


Network & Host Nameを開きます。EhternetONに切り替えます。

Configure...をクリックします。


Ethernetインターフェースの構成ダイアログが開きます。

Generalタブを開き、Connect automatically with priorityチェックを入れます。仮想マシンの起動時に、自動的にネットワークに接続するように構成します。

Saveをクリックし、ダイアログを閉じます。


Network & Host Nameの画面に戻るので、Doneをクリックして閉じます。


オペレーティング・システムのインストールに必要な事前設定が完了したので、Begin Installationをクリックしインストールを開始します。


オペレーティング・システムのインストールが開始します。


環境に依存するため参考程度ですが、私の環境では2分程度で完了しました。

Complete!のメッセージを確認し、Reboot Systemをクリックします。


再起動が完了するとloginのプロンプトが表示されます。これでオペレーティング・システムのインストールは完了です。


オペレーティング・システムを最新までアップデートします。

コンソールからログインして作業するのはほとんど不可能なので、ポート・フォワーディングの設定を行いSSH経由で仮想マシンにログインします。

VirtualBoxマネジャーより仮想マシンを選択し、ネットワークの設定を開きます。


ネットワークの設定のポートフォワーディングをクリックします。


開いたパネルより、ポート・フォワーディングのルールを追加します。プラスのアイコンをクリックすると一行追加されます。

名前SSHとします。プロトコルTCPです。ホスト・ポートはホスト(つまりWindowsやMac側)で利用可能なポート番号を指定します。通常22のような1024番以下のポートはシステムで予約されているため、それ以上の番号を割り当てることになります。今回は10022としました。ゲスト・ポートは、仮想マシン上でSSHが接続を待機しているポート番号です。サービスはSSHなので22を指定します。

追加したらOKをクリックします。


ネットワークの構成が完了したので、OKをクリックします。


ポート・フォーワーディングの設定を行うと、ホスト・マシンから指定したゲスト・ポートを指定してSSHで接続できるようになります。-pオプションで接続するポート番号として10022を指定します。

ユーザーrootで接続します。

ssh -p 10022 root@localhost

% ssh -p 10022 root@localhost          

The authenticity of host '[localhost]:10022 ([127.0.0.1]:10022)' can't be established.

ED25519 key fingerprint is SHA256:QdVnTLGw/OVAOLJCU5dLW/5T7Yl0OykRIbOgWWREA/s.

This key is not known by any other names.

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '[localhost]:10022' (ED25519) to the list of known hosts.

root@localhost's password: ***********

[root@vbox ~]# 


コマンドラインのsshからの初回接続の場合は確認を求められ、yesを入力すると~/.ssh/known_hostsファイルに公開鍵のフィンガープリントが登録されます。

接続先(この場合localhost:10022)にフィンガープリントが登録済みの場合、以下のように警告が表示されます。SSHで接続できるようにするには、~/.ssh/known_hostsより登録済みのフィンガープリントの行を削除する必要があります。

削除が必要な行は、警告メッセージに含まれています。以下の例では、knows_hosts248行目が削除の対象です。

% ssh -p 10022 root@localhost

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that a host key has just been changed.

The fingerprint for the ED25519 key sent by the remote host is

SHA256:QdVnTLGw/OVAOLJCU5dLW/5T7Yl0OykRIbOgWWREA/s.

Please contact your system administrator.

Add correct host key in /Users/********/.ssh/known_hosts to get rid of this message.

Offending ECDSA key in /Users/********/.ssh/known_hosts:248

Host key for [localhost]:10022 has changed and you have requested strict checking.

Host key verification failed.

% 


オペレーティング・システムを最新までアップデートします。

dnf -y update

[root@vbox ~]# dnf -y update

Failed to set locale, defaulting to C.UTF-8

Oracle Linux 8 BaseOS Latest (aarch64)          9.7 MB/s | 116 MB     00:11    

Oracle Linux 8 Application Stream (aarch64)     8.3 MB/s |  56 MB     00:06    

Latest Unbreakable Enterprise Kernel Release 7  7.3 MB/s |  45 MB     00:06    

Last metadata expiration check: 0:00:05 ago on Tue Oct 15 18:07:45 2024.

Dependencies resolved.

================================================================================

 Package              Arch    Version                   Repository         Size

================================================================================

Upgrading:

 NetworkManager       aarch64 1:1.40.16-15.0.1.el8_9    ol8_baseos_latest 2.1 M

 NetworkManager-libnm aarch64 1:1.40.16-15.0.1.el8_9    ol8_baseos_latest 1.8 M

 NetworkManager-team  aarch64 1:1.40.16-15.0.1.el8_9    ol8_baseos_latest 158 k

 NetworkManager-tui   aarch64 1:1.40.16-15.0.1.el8_9    ol8_baseos_latest 342 k

 audit                aarch64 3.1.2-1.0.1.el8           ol8_baseos_latest 256 k

 audit-libs           aarch64 3.1.2-1.0.1.el8           ol8_baseos_latest 119 k

 bubblewrap           aarch64 0.4.0-2.el8_10            ol8_baseos_latest  48 k

 c-ares               aarch64 1.13.0-11.el8_10          ol8_baseos_latest  92 k

 ca-certificates      noarch  2024.2.69_v8.0.303-80.0.el8_10

                                                        ol8_baseos_latest 981 k


[中略]


  sssd-client-2.9.4-4.0.1.el8_10.aarch64                                        

  sssd-common-2.9.4-4.0.1.el8_10.aarch64                                        

  sssd-kcm-2.9.4-4.0.1.el8_10.aarch64                                           

  sssd-nfs-idmap-2.9.4-4.0.1.el8_10.aarch64                                     

  systemd-239-82.0.2.el8_10.2.aarch64                                           

  systemd-libs-239-82.0.2.el8_10.2.aarch64                                      

  systemd-pam-239-82.0.2.el8_10.2.aarch64                                       

  systemd-udev-239-82.0.2.el8_10.2.aarch64                                      

  tuned-2.22.1-4.0.1.el8_10.1.noarch                                            

  xfsprogs-5.15.0-1.0.5.el8.aarch64                                             

Installed:

  kernel-uek-5.15.0-300.163.18.1.1.el8uek.aarch64                               

  kernel-uek-core-5.15.0-300.163.18.1.1.el8uek.aarch64                          

  kernel-uek-modules-5.15.0-300.163.18.1.1.el8uek.aarch64                       


Complete!

[root@vbox ~]# 


カーネルが変更されている場合もあるので、オペレーティング・システムを再起動します。

shutdown -r now

[root@vbox ~]# shutdown -r now

Connection to localhost closed by remote host.

Connection to localhost closed.

% 


以上で、Oracle Linuxのインストールは完了です。


Oracle Database 23ai Freeをインストールする



Oracle Linux 8で構成された仮想マシンに、Oracle Database 23ai Freeをインストールします。

必要なソフトウェアは、Oracle Database Free Get Startedのページに掲載されています。

Oracle Linux 8 for Arm (aarch64)以下にリストされている事前構成パッケージと、Oracle Database FreeのRPMをインストールします。


最初に事前構成パッケージをインストールします。

仮想マシンにユーザーrootでログインします。

ssh -p 10022 root@localhost

% ssh -p 10022 root@localhost

root@localhost's password: ********

Last login: Tue Oct 15 18:01:22 2024 from 10.0.2.2

[root@vbox ~]# 


Get Startedのページから事前構成パッケージのリンクをコピーし(ブラウザのリンクのアドレスのコピーを実行します)、直接RPMファイルをインストールします。

dnf -y install https://yum.oracle.com/repo/OracleLinux/OL8/appstream/aarch64/getPackage/oracle-database-preinstall-23ai-1.0-3.el8.aarch64.rpm

[root@vbox ~]# dnf -y install https://yum.oracle.com/repo/OracleLinux/OL8/appstream/aarch64/getPackage/oracle-database-preinstall-23ai-1.0-3.el8.aarch64.rpm

Failed to set locale, defaulting to C.UTF-8

Last metadata expiration check: 0:12:31 ago on Tue Oct 15 18:11:13 2024.

oracle-database-preinstall-23ai-1.0-3.el8.aarch 131 kB/s |  30 kB     00:00    

Dependencies resolved.

================================================================================

 Package                 Arch    Version                Repository         Size

================================================================================

Installing:

 oracle-database-preinstall-23ai

                         aarch64 1.0-3.el8              @commandline       30 k

Installing dependencies:

 bc                      aarch64 1.07.1-5.el8           ol8_baseos_latest 127 k

 bind-libs               aarch64 32:9.11.36-16.el8_10.2 ol8_appstream     171 k

 bind-libs-lite          aarch64 32:9.11.36-16.el8_10.2 ol8_appstream     1.1 M

 bind-license            noarch  32:9.11.36-16.el8_10.2 ol8_appstream     104 k

 bind-utils              aarch64 32:9.11.36-16.el8_10.2 ol8_appstream     445 k

 binutils                aarch64 2.30-123.0.2.el8       ol8_baseos_latest 6.2 M

 checkpolicy             aarch64 2.9-1.el8              ol8_baseos_latest 331 k

 compat-openssl10        aarch64 1:1.0.2o-4.el8_6       ol8_appstream     894 k

 cpp                     aarch64 8.5.0-22.0.1.el8_10    ol8_appstream     9.0 M

 dejavu-fonts-common     noarch  2.35-7.el8             ol8_baseos_latest  74 k

 dejavu-sans-fonts       noarch  2.35-7.el8             ol8_baseos_latest 1.5 M

 fontconfig              aarch64 2.13.1-4.el8           ol8_baseos_latest 272 k


[中略]


  policycoreutils-python-utils-2.9-26.0.1.el8_10.noarch                         

  protobuf-c-1.3.0-8.el8.aarch64                                                

  python3-audit-3.1.2-1.0.1.el8.aarch64                                         

  python3-bind-32:9.11.36-16.el8_10.2.noarch                                    

  python3-libsemanage-2.9-9.el8_6.aarch64                                       

  python3-policycoreutils-2.9-26.0.1.el8_10.noarch                              

  python3-pyyaml-3.12-12.el8.aarch64                                            

  python3-setools-4.3.0-5.el8.aarch64                                           

  quota-1:4.04-14.el8.aarch64                                                   

  quota-nls-1:4.04-14.el8.noarch                                                

  rpcbind-1.2.5-10.el8.aarch64                                                  

  smartmontools-1:7.1-3.el8.aarch64                                             

  sysstat-11.7.3-13.0.1.el8_10.aarch64                                          

  tar-2:1.30-9.el8.aarch64                                                      

  unzip-6.0-46.0.1.el8.aarch64                                                  

  xorg-x11-utils-7.5-28.el8.aarch64                                             

  xorg-x11-xauth-1:1.0.9-12.el8.aarch64                                         


Complete!

[root@vbox ~]# 


プリインストール・パッケージのインストールが完了しました。

Oracle Database 23ai FreeのRPMをダウンロードします。

curl -OL https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23ai-1.0-1.el8.aarch64.rpm

[root@vbox ~]# curl -OL https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23ai-1.0-1.el8.aarch64.rpm

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

100   513  100   513    0     0    571      0 --:--:-- --:--:-- --:--:--  1432

100 1178M  100 1178M    0     0  9740k      0  0:02:03  0:02:03 --:--:-- 9875k

[root@vbox ~]# 


ダウンロードしたRPMをインストールします。

dnf -y install oracle-database-free-23ai-1.0-1.el8.aarch64.rpm

[root@vbox ~]# curl -OL https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23ai-1.0-1.el8.aarch64.rpm

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

100   513  100   513    0     0    571      0 --:--:-- --:--:-- --:--:--  1432

100 1178M  100 1178M    0     0  9740k      0  0:02:03  0:02:03 --:--:-- 9875k

[root@vbox ~]# dnf -y install oracle-database-free-23ai-1.0-1.el8.aarch64.rpm 

Failed to set locale, defaulting to C.UTF-8

Last metadata expiration check: 0:21:23 ago on Tue Oct 15 18:11:13 2024.

Dependencies resolved.

================================================================================

 Package                        Architecture Version    Repository         Size

================================================================================

Installing:

 oracle-database-free-23ai      aarch64      1.0-1      @commandline      1.2 G


Transaction Summary

================================================================================

Install  1 Package


Total size: 1.2 G

Installed size: 3.0 G

Downloading Packages:

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                        1/1 

  Running scriptlet: oracle-database-free-23ai-1.0-1.aarch64                1/1 

  Installing       : oracle-database-free-23ai-1.0-1.aarch64                1/1 

  Running scriptlet: oracle-database-free-23ai-1.0-1.aarch64                1/1 

[INFO] Executing post installation scripts...

[INFO] Oracle home installed successfully and ready to be configured.

To configure Oracle Database Free, optionally modify the parameters in '/etc/sysconfig/oracle-free-23ai.conf' and then run '/etc/init.d/oracle-free-23ai configure' as root.


  Verifying        : oracle-database-free-23ai-1.0-1.aarch64                1/1 


Installed:

  oracle-database-free-23ai-1.0-1.aarch64                                       


Complete!

[root@vbox ~]# 


oracle-free-23ai configureを実行して、SYSSYSTEMおよびPDBADMINのパスワードとなる文字列を2回入力します。

/etc/init.d/oracle-free-23ai configure

マルチテナント構成のデータベース・インスタンスが作成されます。SIDFREE、作成されるPDBFREEPDB1です。SIDやPDBの名前を変更する場合は、/etc/init.d/oracle-free-23aiに記述されている定義を、あらかじめ変更しておきます。

[root@vbox ~]# /etc/init.d/oracle-free-23ai configure

Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts: ********

Confirm the password: ********

Configuring Oracle Listener.

Listener configuration succeeded.

Configuring Oracle Database FREE.

Enter SYS user password: 

********

Enter SYSTEM user password: 

******

Enter PDBADMIN User Password: 

******

Prepare for db operation

7% complete

Copying database files

29% complete

Creating and starting Oracle instance

30% complete

33% complete

36% complete

39% complete

43% complete

Completing Database Creation

47% complete

49% complete

50% complete

Creating Pluggable Databases

54% complete

71% complete

Executing Post Configuration Actions

93% complete

Running Custom Scripts

100% complete

Database creation complete. For details check the logfiles at:

 /opt/oracle/cfgtoollogs/dbca/FREE.

Database Information:

Global Database Name:FREE

System Identifier(SID):FREE

Look at the log file "/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log" for further details.


Connect to Oracle Database using one of the connect strings:

     Pluggable database: vbox/FREEPDB1

     Multitenant container database: vbox

[root@vbox ~]# 


構成が完了したら、データベースへの接続を確認します。接続先としてlocalhost/FREEPDB1を指定します。

. oraenv
ORACLE_SID = [root] ? FREE
sqlplus system/パスワード@localhost/freepdb1
select banner_full from v$version;
exit


[root@vbox ~]# . oraenv

ORACLE_SID = [root] ? FREE

The Oracle base has been set to /opt/oracle

[root@vbox ~]# sqlplus system/********@localhost/freepdb1


SQL*Plus: Release 23.0.0.0.0 - Production on Tue Oct 15 18:40:39 2024

Version 23.5.0.24.07


Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Last Successful login time: Tue Oct 15 2024 18:38:15 +09:00


Connected to:

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.5.0.24.07


SQL> select banner_full from v$version;


BANNER_FULL

--------------------------------------------------------------------------------

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.5.0.24.07



SQL> exit

Disconnected from Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.5.0.24.07

[root@vbox ~]# 


接続先のデータベースのバージョンが23.5であることを確認します。

データベースの自動起動を有効にします。

systemctl enable oracle-free-23ai

[root@vbox ~]# systemctl enable oracle-free-23ai

oracle-free-23ai.service is not a native service, redirecting to systemd-sysv-install.

Executing: /usr/lib/systemd/systemd-sysv-install enable oracle-free-23ai

[root@vbox ~]# 


ダウンロードしたRPMファイルを削除します。

rm oracle-database-free-23ai-1.0-1.el8.aarch64.rpm

[root@vbox ~]# rm oracle-database-free-23ai-1.0-1.el8.aarch64.rpm 

rm: remove regular file 'oracle-database-free-23ai-1.0-1.el8.aarch64.rpm'? yes

[root@vbox ~]# 


以上でOracle Database 23ai Freeのインストールは完了です。


Oracle APEXをインストールする



Oracle APEXの最新のメディアをダウンロードします。ダウンロードするZIPファイルは、バージョンによらず固定です。
https://download.oracle.com/otn_software/apex/apex-latest.zip

オラクル・データベースのRPMをインストールすると、ユーザーoracleとグループoinstallが作成されます。Oracle APEXのインストールはユーザーoracleにて実行します。

su - oracle

[root@vbox ~]# su - oracle

Last login: Tue Oct 15 18:36:39 JST 2024

[oracle@vbox ~]$ 


Oracle APEXのインストールに使用するZIPファイルを取得します。作業はユーザーoracleのホーム・ディレクトリ/home/oracleで行います。

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

[oracle@vbox ~]$ curl -OL https://download.oracle.com/otn_software/apex/apex-latest.zip

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100  276M  100  276M    0     0  9497k      0  0:00:29  0:00:29 --:--:-- 9249k

[oracle@vbox ~]$ 


ダウンロードされたapex-latest.zipunzipします。apexというディレクトリ以下にzipファイルの内容が展開されます。

unzip apex-latest.zip

[oracle@vbox ~]$ unzip apex-latest.zip 

Archive:  apex-latest.zip

  inflating: META-INF/MANIFEST.MF    

  inflating: META-INF/ORACLE_C.SF    

  inflating: META-INF/ORACLE_C.RSA   

   creating: apex/

  inflating: apex/LICENSE.txt        

  inflating: apex/apex_rest_config.sql  

  inflating: apex/apex_rest_config_cdb.sql  

  inflating: apex/apex_rest_config_core.sql  

  inflating: apex/apex_rest_config_nocdb.sql  

  inflating: apex/apexins.sql        

  inflating: apex/apexins1.sql       

  inflating: apex/apexins2.sql       

  inflating: apex/apexins3.sql       

  inflating: apex/apexins_adb.sql    


[中略]


  inflating: apex/images/wwv_todo.gif  

  inflating: apex/images/wwv_user_list.gif  

  inflating: apex/images/wwv_user_quick.gif  

  inflating: apex/images/yellow.gif  

 extracting: apex/images/yellow_flag.gif  

 extracting: apex/images/yes.gif     

 extracting: apex/images/apex_version.txt  

 extracting: apex/images/apex_version.js  

[oracle@vbox ~]$ 


ダウンロードしたメディアのAPEXのバージョンを確認します。images以下のapex_version.txtの内容を表示します。

cat apex/images/apex_version.txt

[oracle@vbox ~]$ cat apex/images/apex_version.txt

Oracle APEX Version:  24.1

[oracle@vbox ~]$ 


APEXのアプリケーションが必要とする静的ファイルを/i/24.1.0にコピーします。24.1.0の部分はインストールするAPEXのバージョンによって変わります。

mkdir i
cp -r -p apex/images i/24.1.0

[oracle@vbox ~]$ mkdir i

[oracle@vbox ~]$ cp -r -p apex/images i/24.1.0

[oracle@vbox ~]$ 


これらのファイルをCDNから取得するようにOracle APEXを構成する場合は、/i/24.1.0の作成は必要ではありません。

作成されたディレクトリapexへ移動します。

cd apex

[oracle@vbox ~]$ cd apex

[oracle@vbox apex]$ 


ユーザーsysでPDB、FREEPDB1に接続し、Oracle APEXのインストール・スクリプトapexins.sqlを実行します。インストール・スクリプトに与える引数はSYSAUX SYSAUX TEMP /i/24.1.0/です。APEXのインストール先となる表領域として標準で作成されているSYSAUXを指定しています。一時表領域としてTEMPを使い、イメージのパスには複数のAPEXのバージョンを同時にホストできるように、バージョン番号を加えて/i/24.1.0/としています。

NLS_LANGとして、必ずAmerican_America.AL32UTF8を設定します。

export NLS_LANG=American_America.AL32UTF8
. oraenv
ORACLE_SID = [oracle] ? FREE
sqlplus sys/*******@localhost/freepdb1 as sysdba
@apexins SYSAUX SYSAUX TEMP /i/24.1.0/


[oracle@vbox apex]$ export NLS_LANG=American_America.AL32UTF8

[oracle@vbox apex]$ . oraenv

ORACLE_SID = [oracle] ? FREE

The Oracle base has been set to /opt/oracle

[oracle@vbox apex]$ sqlplus sys/********@localhost/freepdb1 as sysdba


SQL*Plus: Release 23.0.0.0.0 - Production on Tue Oct 15 18:55:38 2024

Version 23.5.0.24.07


Copyright (c) 1982, 2024, Oracle.  All rights reserved.



Connected to:

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.5.0.24.07


SQL> @apexins SYSAUX SYSAUX TEMP /i/24.1.0/

...set_appun.sql


PL/SQL procedure successfully completed.



[中略]



The structure of the link to the Oracle APEX development interface is as follows:

http://host:port/ords



timing for: Phase 3 (Switch)

Elapsed:    0.13



timing for: Complete Installation

Elapsed:    4.15


SYS> 


apexins.sqlの終了後、続けて日本語リソースを導入します。load_trans.sqlに引数としてJAPANESEを与えて実行します。

@load_trans JAPANESE

SYS> @load_trans JAPANESE


PL/SQL procedure successfully completed.


Installing Oracle APEX translation - JAPANESE


. ORACLE

.

. Oracle APEX Hosted Development Service Installation.

..............................................................


PL/SQL procedure successfully completed.



PL/SQL procedure successfully completed.


--application/set_environment

API Last Extended:20240531

Your Current Version:20240531

This import is compatible with version: 20240531

COMPATIBLE (You should be able to run this import without issues.)

ID offset during import: 0

New ID offset for application: 0


[中略]


--application/pages/page_00203

--application/pages/page_00204

--application/pages/page_00205

--application/pages/page_00206

--application/deployment/definition

--application/deployment/checks

--application/deployment/buildoptions

--application/end_environment

... elapsed: 3.24 sec

...done

Adjust instance settings


PL/SQL procedure successfully completed.


SYS> 


APEXの管理ユーザーの設定を行います。apxchpwd.sqlを実行します。設定するパスワードは以下のルールに従う必要があります。
  • 少なくても1文字の数値を含む。(0123456789)
  • 少なくても1文字の記号を含む。(!"#$%&()``*+,-/:;?_)
  • 少なくても1文字の大文字を含む。
@apxchpwd

SYS> @apxchpwd

...set_appun.sql

================================================================================

This script can be used to change the password of an Oracle APEX

instance administrator. If the user does not yet exist, a user record will be

created.

================================================================================

Enter the administrator's username [ADMIN] 

User "ADMIN" does not yet exist and will be created.

Enter ADMIN's email [ADMIN] 

Enter ADMIN's password [] ********

Created instance administrator ADMIN.


SYS> 


データベース・ユーザーAPEX_PUBLIC_USERをアンロックします。パスワードの設定は不要です。

set feedback on
alter user apex_public_user no authentication account unlock;


SYS> set feedback on

SYS> alter user apex_public_user no authentication account unlock;


User altered.


SYS> 


プロシージャAPEX_WEB_SERVICE.MAKE_REST_REQUESTを呼び出してHTTPのコールアウトができるように、スキーマAPEX_240100にネットワークACLによる許可を追加します。
begin
    dbms_network_acl_admin.append_host_ace(
        host => '*',
        ace => xs$ace_type(
            privilege_list => xs$name_list('connect'),
            principal_name => 'APEX_240100',
            principal_type => xs_acl.ptype_db
        )
     );
     commit;
end;
/

SYS> begin

    dbms_network_acl_admin.append_host_ace(

        host => '*',

        ace => xs$ace_type(

            privilege_list => xs$name_list('connect'),

            principal_name => 'APEX_240100',

            principal_type => xs_acl.ptype_db

        )

     );

     commit;

end;

/  2    3    4    5    6    7    8    9   10   11   12  


PL/SQL procedure successfully completed.


SYS> 


sqlplusよりexitします。

exit

SYS> exit

Disconnected from Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.5.0.24.07

[oracle@vbox apex]$ 


ダウンロードしたAPEXのZIPファイルを削除します。

cd
rm apex-latest.zip


[oracle@vbox apex]$ cd

[oracle@vbox ~]$ rm apex-latest.zip 

[oracle@vbox ~]$ 


以上でOracle APEXのデータベースへのインストールは完了です。

sqlplusで実行する一連のコマンドをファイルに記述すると、以下のようになります。




Oracle REST Data Servicesをインストールする



Oracle REST Data Services(以下ORDS)をインストールします。

最初にfirewalldを構成します。

ORDSは一般ユーザーの権限で動作させるため、HTTPやHTTPSのポート(80および443)の接続を待ち受けることはできません。代わりにポート8080と8443を使用します。firewalldではHTTP(ポート80)の接続をポート8080、HTTPS(ポート443)の接続をポート8443へ転送します。また、HTTPとHTTPSへの接続を許可します。

firewalldを構成する一連のコマンドは以下になります。

firewall-cmd --add-service=https
firewall-cmd --add-service=http
firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8443
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd --runtime-to-permanent
firewall-cmd --reload
firewall-cmd --list-all


ユーザーrootで、上記のコマンドを実行します。

[root@vbox ~]# firewall-cmd --add-service=https

success

[root@vbox ~]# firewall-cmd --add-service=http

success

[root@vbox ~]# firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8443

success

[root@vbox ~]# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080

success

[root@vbox ~]# firewall-cmd --runtime-to-permanent

success

[root@vbox ~]# firewall-cmd --reload

success

[root@vbox ~]# firewall-cmd --list-all

public (active)

  target: default

  icmp-block-inversion: no

  interfaces: enp0s8

  sources: 

  services: cockpit dhcpv6-client http https ssh

  ports: 

  protocols: 

  forward: no

  masquerade: no

  forward-ports: 

port=443:proto=tcp:toport=8443:toaddr=

port=80:proto=tcp:toport=8080:toaddr=

  source-ports: 

  icmp-blocks: 

  rich rules: 

[root@vbox ~]# 


続いて、Java Development Kitをインストールします。

ORDSはJavaで書かれたアプリケーションです。使用するJDKは、Oracle JDKを想定しています。不具合などでSRを上げる場合はOracle JDKの再現を確認する必要がありますが、今回のような無料の環境での利用であれば、OpenJDKやAmazon Correttoを使用することもできます。

サポートしているJDKのバージョンは17および21です。今回はOpenJDK 21を使用してORDSを動かします。Oracle REST Data Services 23.3で追加されたGraphQLのサポートを有効にするには、通常のJDKではなくGraalVMを使う必要があります。

dnf -y install java-21-openjdk-headless

[root@vbox ~]# dnf -y install java-21-openjdk-headless

Failed to set locale, defaulting to C.UTF-8

Last metadata expiration check: 1:03:32 ago on Tue Oct 15 18:11:13 2024.

Dependencies resolved.

================================================================================

 Package                 Arch    Version                Repository         Size

================================================================================

Installing:

 java-21-openjdk-headless

                         aarch64 1:21.0.4.0.7-1.0.1.el8 ol8_appstream      49 M

Installing dependencies:

 alsa-lib                aarch64 1.2.10-2.el8           ol8_appstream     468 k

 avahi-libs              aarch64 0.7-27.el8_10.1        ol8_baseos_latest  60 k

 copy-jdk-configs        noarch  4.0-2.el8              ol8_appstream      30 k

 cups-libs               aarch64 1:2.2.6-60.el8_10      ol8_baseos_latest 419 k

 javapackages-filesystem noarch  5.3.0-1.module+el8+5136+7ff78f74

                                                        ol8_appstream      30 k

 lksctp-tools            aarch64 1.0.18-3.el8           ol8_baseos_latest  98 k

 lua                     aarch64 5.3.4-12.el8           ol8_appstream     188 k

 tzdata-java             noarch  2024a-1.0.1.el8        ol8_appstream     186 k


[中略]


Installed:

  alsa-lib-1.2.10-2.el8.aarch64                                                 

  avahi-libs-0.7-27.el8_10.1.aarch64                                            

  copy-jdk-configs-4.0-2.el8.noarch                                             

  cups-libs-1:2.2.6-60.el8_10.aarch64                                           

  java-21-openjdk-headless-1:21.0.4.0.7-1.0.1.el8.aarch64                       

  javapackages-filesystem-5.3.0-1.module+el8+5136+7ff78f74.noarch               

  lksctp-tools-1.0.18-3.el8.aarch64                                             

  lua-5.3.4-12.el8.aarch64                                                      

  tzdata-java-2024a-1.0.1.el8.noarch                                            


Complete!

[root@vbox ~]# 


JDKのインストールが完了したら、Javaのバージョンを確認します。

java -version

[root@vbox ~]# java -version

openjdk version "21.0.4" 2024-07-16 LTS

OpenJDK Runtime Environment (Red_Hat-21.0.4.0.7-1.0.1) (build 21.0.4+7-LTS)

OpenJDK 64-Bit Server VM (Red_Hat-21.0.4.0.7-1.0.1) (build 21.0.4+7-LTS, mixed mode, sharing)

[root@vbox ~]# 


Oracle REST Data Servicesは、Yumリポジトリを指定してインストールします。

以下のコマンドを実行します。

dnf -y --repofrompath ol8_oracle_software,https://yum.oracle.com/repo/OracleLinux/OL8/oracle/software/aarch64 install ords

[root@vbox ~]# dnf -y --repofrompath ol8_oracle_software,https://yum.oracle.com/repo/OracleLinux/OL8/oracle/software/aarch64 install ords

Failed to set locale, defaulting to C.UTF-8

Added ol8_oracle_software repo from https://yum.oracle.com/repo/OracleLinux/OL8/oracle/software/aarch64

ol8_oracle_software                              18 kB/s |  35 kB     00:01    

Dependencies resolved.

================================================================================

 Package    Architecture  Version               Repository                 Size

================================================================================

Installing:

 ords       noarch        24.3.0-6.el8          ol8_oracle_software       150 M

Installing dependencies:

 lsof       aarch64       4.93.2-1.el8          ol8_baseos_latest         249 k


Transaction Summary

================================================================================

Install  2 Packages


Total download size: 150 M

Installed size: 159 M

Downloading Packages:

(1/2): lsof-4.93.2-1.el8.aarch64.rpm             87 kB/s | 249 kB     00:02    

(2/2): ords-24.3.0-6.el8.noarch.rpm             8.2 MB/s | 150 MB     00:18    

--------------------------------------------------------------------------------

Total                                           8.3 MB/s | 150 MB     00:18     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                        1/1 

  Installing       : lsof-4.93.2-1.el8.aarch64                              1/2 

  Running scriptlet: ords-24.3.0-6.el8.noarch                               2/2 

  Installing       : ords-24.3.0-6.el8.noarch                               2/2 

  Running scriptlet: ords-24.3.0-6.el8.noarch                               2/2 

WARN: ORDS requires Java 11 or 17.

         You can install Oracle Java at https://www.oracle.com/java/technologies/downloads/#java11.

INFO: Before starting ORDS service, run the below command as user oracle:

         ords --config /etc/ords/config install

INFO: To enable the ORDS service during startup, run the below command:

         sudo  systemctl enable ords


  Verifying        : lsof-4.93.2-1.el8.aarch64                              1/2 

  Verifying        : ords-24.3.0-6.el8.noarch                               2/2 


Installed:

  lsof-4.93.2-1.el8.aarch64               ords-24.3.0-6.el8.noarch              


Complete!

[root@vbox ~]# 


--repofrompathオプションでYumリポジトリの位置を指定する代わりに、/etc/yum.repos.d/以下にYumリポジトリを定義しても良いでしょう。

インストールしたOracle REST Data Servicesを構成します。

ORDSの構成ファイルのデフォルトの位置は/etc/ords/configです。dnfコマンドでORDSをRPMファイルからインストールしている場合は、この構成ディレクトリも作成されます。

ORDSの構成はユーザーoracleで行います。ORDSを操作するコマンドは、/usr/local/bin/ordsとしてスクリプトがインストールされているので、/usr/local/binを環境変数PATHに追加します。

ORDSコマンドを実行するときに構成ディレクトリが未指定だと、カレント・ディレクトリを構成ディレクトリと見做します。作業は/etc/ords/config上で実施します。

su - oracle
export PATH=/usr/local/bin:$PATH
cd /etc/ords/config


[root@vbox ~]# su - oracle

Last login: Tue Oct 15 18:47:28 JST 2024 on pts/0

[oracle@vbox ~]$ export PATH=/usr/local/bin:$PATH

[oracle@vbox ~]$ cd /etc/ords/config

[oracle@vbox config]$ 


構成を開始します。データベースへのオブジェクトのインストールと、Webサーバーの構成を行います。

ほとんどの指定はデフォルトを選択します。デフォルトと異なる指定は、以下です。

database service name として freepdb1 を指定します。
administrator username として sys を指定します。
database password for SYS AS SYSDBASYSのパスワードを指定します。

インストールの準備が完了した時点でAではなく9を入力して、APEX static resource location として /home/oracle/i を指定します。

ords install

[oracle@vbox config]$ ords install

2024-10-15T10:22:45Z INFO   ORDS has not detected the option '--config' and this will be set up to the default directory.


ORDS: Release 24.3 Production on Tue Oct 15 10:22:46 2024


Copyright (c) 2010, 2024, Oracle.


Configuration:

  /etc/ords/config


The configuration folder /etc/ords/config does not contain any configuration files.


Oracle REST Data Services - Interactive Install


  Enter a number to select the database connection type to use

    [1] Basic (host name, port, service name)

    [2] TNS (TNS alias, TNS directory)

    [3] Custom database URL

  Choose [1]: 

  Enter the database host name [localhost]: 

  Enter the database listen port [1521]: 

  Enter the database service name [orcl]: freepdb1

  Provide database user name with administrator privileges.

    Enter the administrator username: sys

  Enter the database password for SYS AS SYSDBA: ********


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: Basic

    [2] Basic Connection: HOST=localhost PORT=1521 SERVICE_NAME=freepdb1

           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]: 9

  Enter the APEX static resources location: /home/oracle/i

  Enter a number to update the value or select option A to Accept and Continue

    [1] Connection Type: Basic

    [2] Basic Connection: HOST=localhost PORT=1521 SERVICE_NAME=freepdb1

           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: /home/oracle/i

    [A] Accept and Continue - Create configuration and Install ORDS in the database

    [Q] Quit - Do not proceed. No changes

  Choose [A]: 

The setting named: db.connectionType was set to: basic in configuration: default

The setting named: db.hostname was set to: localhost in configuration: default

The setting named: db.port was set to: 1521 in configuration: default

The setting named: db.servicename was set to: freepdb1 in configuration: default

The setting named: plsql.gateway.mode was set to: proxied in configuration: default

The setting named: db.username was set to: ORDS_PUBLIC_USER in configuration: default

The setting named: db.password was set to: ****** in configuration: default

The setting named: feature.sdw was set to: true in configuration: default

The global setting named: database.api.enabled was set to: true

The setting named: restEnabledSql.active was set to: true in configuration: default

The global setting named: standalone.http.port was set to: 8080

The global setting named: standalone.static.path was set to: /home/oracle/i

The global setting named: standalone.doc.root was set to: /etc/ords/config/global/doc_root

The setting named: security.requestValidationFunction was set to: ords_util.authorize_plsql_gateway in configuration: default

2024-10-15T10:23:15.081Z INFO        Created folder /etc/ords/config/logs

2024-10-15T10:23:15.082Z INFO        The log file is defaulted to the current working directory located at /etc/ords/config/logs

2024-10-15T10:23:15.156Z INFO        Installing Oracle REST Data Services version 24.3.0.r2620924 in FREEPDB1

2024-10-15T10:23:15.976Z INFO        ... Verified database prerequisites

2024-10-15T10:23:16.226Z INFO        ... Created Oracle REST Data Services proxy user

2024-10-15T10:23:16.588Z INFO        ... Created Oracle REST Data Services schema

2024-10-15T10:23:16.948Z INFO        ... Granted privileges to Oracle REST Data Services

2024-10-15T10:23:19.327Z INFO        ... Created Oracle REST Data Services database objects

2024-10-15T10:23:27.912Z INFO        Completed installation for Oracle REST Data Services version 24.3.0.r2620924. Elapsed time: 00:00:12.738 


2024-10-15T10:23:27.964Z INFO        Completed configuring PL/SQL gateway user for Oracle REST Data Services version 24.3.0.r2620924. Elapsed time: 00:00:00.50 


2024-10-15T10:23:27.965Z INFO        Log file written to /etc/ords/config/logs/ords_install_2024-10-15_102315_08230.log

2024-10-15T10:23:28.083Z INFO        HTTP and HTTP/2 cleartext listening on host: 0.0.0.0 port: 8080

2024-10-15T10:23:28.094Z INFO        Disabling document root because the specified folder does not exist: /etc/ords/config/global/doc_root

2024-10-15T10:23:28.094Z INFO        Default forwarding from / to contextRoot configured.

2024-10-15T10:23:29.776Z INFO        Configuration properties for: |default|lo|

db.servicename=freepdb1

db.hostname=localhost

db.password=******

conf.use.wallet=true

security.requestValidationFunction=ords_util.authorize_plsql_gateway

database.api.enabled=true

db.username=ORDS_PUBLIC_USER

standalone.http.port=8080

standalone.static.path=/home/oracle/i

restEnabledSql.active=true

resource.templates.enabled=false

plsql.gateway.mode=proxied

db.port=1521

feature.sdw=true

config.required=true

db.connectionType=basic

standalone.doc.root=/etc/ords/config/global/doc_root


2024-10-15T10:23:29.777Z WARNING     *** jdbc.MaxLimit in configuration |default|lo| is using a value of 10, this setting may not be sized adequately for a production environment ***

2024-10-15T10:23:29.777Z WARNING     *** jdbc.InitialLimit in configuration |default|lo| is using a value of 10, this setting may not be sized adequately for a production environment ***

2024-10-15T10:23:35.564Z INFO        


Mapped local pools from /etc/ords/config/databases:

  /ords/                              => default                        => VALID     



2024-10-15T10:23:35.632Z INFO        Oracle REST Data Services initialized

Oracle REST Data Services version : 24.3.0.r2620924

Oracle REST Data Services server info: jetty/10.0.21

Oracle REST Data Services java info: OpenJDK 64-Bit Server VM 21.0.4+7-LTS




ORDSが正しく構成されていると、ORDSは起動したままでコマンド・プロンプトに戻りません。

Oracle APEXへの接続確認を行います。

仮想マシンではORDSが起動し、HTTPによる接続を待っている状態です。VirtualBoxマネージャーより、仮想マシンのネットワークポート・フォワーディングルールを追加します。


localhostのポート8080への接続要求が、仮想マシンのポート80へ転送されます。仮想マシンではfirewalldがポート80への接続要求を、ORDSが接続を待ち受けしているポート8080へ転送します。

ブラウザを立ち上げ、以下のURLに接続します。
http://localhost:8080/ords/apex_admin

管理サービスの接続画面が開いたら、ユーザー名としてadminパスワードとしてAPEXのインストール時にapxchpwd.sqlを実行して設定したパスワードを指定します。

管理にサインインをクリックします。


サインインに成功することを確認します。

ワークスペースの作成を求められます。上部のナビゲーション・メニューを選択すると、ワークスペースの作成をスキップできます。


ブラウザからOracle APEXに接続できることが確認できました。

仮想マシンが起動したときに、ORDSも起動するように設定します。

実行中のORDSをCTRL+Cを入力して終了します。

2024-10-15T10:23:35.632Z INFO        Oracle REST Data Services initialized

Oracle REST Data Services version : 24.3.0.r2620924

Oracle REST Data Services server info: jetty/10.0.21

Oracle REST Data Services java info: OpenJDK 64-Bit Server VM 21.0.4+7-LTS


^C

[oracle@vbox config]$ 


接続上の問題が発生したときに、コネクション・プールをリセットする時間を設定します。今回は30sとします。

ords config set --global db.invalidPoolTimeout 30s

[oracle@vbox config]$ ords config set --global db.invalidPoolTimeout 30s

2024-10-15T10:35:48Z INFO   ORDS has not detected the option '--config' and this will be set up to the default directory.


ORDS: Release 24.3 Production on Tue Oct 15 10:35:49 2024


Copyright (c) 2010, 2024, Oracle.


Configuration:

  /etc/ords/config


The global setting named: db.invalidPoolTimeout was set to: 30s

[oracle@vbox config]$ 


ユーザーoracleから抜けます。

exit

[oracle@vbox config]$ exit

logout

[root@vbox ~]# 


ORDSの自動起動を設定します。

systemctl enable ords

[root@vbox ~]# systemctl enable ords

Synchronizing state of ords.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.

Executing: /usr/lib/systemd/systemd-sysv-install enable ords

Created symlink /etc/systemd/system/multi-user.target.wants/ords.service → /etc/systemd/system/ords.service.

Created symlink /etc/systemd/system/graphical.target.wants/ords.service → /etc/systemd/system/ords.service.

[root@vbox ~]# 


systemctlコマンドによってORDSが起動できることを確認します。

systemctl stop ords
systemctl start ords

[root@vbox ~]# systemctl stop ords

[root@vbox ~]# systemctl start ords

[root@vbox ~]# 


先ほどと同様にOracle APEXの管理サービスに接続できることを確認します。
http://localhost:8080/ords/apex_admin

接続の確認ができれば、ORDSのインストールと構成は完了です。

また、これよりOracle APEXを使用することができます。