2023年6月30日金曜日

Apple M1 MacにOracle Database 19cをインストールする

オラクルよりOracle Database 19cのARM版がリリースされました。オラクル社のアナウンスは以下より参照できます。

Oracle Announces Oracle Database for Arm Architectures in the Cloud & On-Premises
https://blogs.oracle.com/database/post/announcing-oracle-database-19c-support-for-arm

仕事に使っているマシンをApple M1のMacbook Proに変えてから、手元の仮想マシンでAPEXを動かすことができず、困っていました。早速、環境を作ってみました。

データベースがインストールできれば、APEXおよびORDSはアーキテクチャに依存しない(ORDSはARM上のOracle Linuxへのインストール実績あり)しません。そのため、ARM版のOracle Linuxの仮想マシンの作成と、Oracle Database 19cのインストールまでを行います。

2025年8月28日更新
ARM版のVirtualBox 7.2.0では、Oracle Linux 8の仮想マシンを問題なく作成できました。そのため、VirtualBoxを使用する手順に変更しています。

以下より実施した作業を紹介します。


インストール・メディアのダウンロード



Oracle LinuxとOracle Database 19cのインストール・メディアをダウンロードします。

最初に、Oracle Linux Installation Mediaのサイトにアクセスします。


Oracle Linux Arm (aarch64) ISOs以下の、Oracle Linux 8系列の最新版のFull ISOをダウンロードします。インストレーション・ガイドには以下の記載があります。Oracle Linux 9には未対応のようです。

Oracle Linux 8.6 with Unbreakable Enterprise Kernel 7: 5.15.0-6.80.3.1.el8uek.aarch64 or later
Note: Oracle recommends that you update Oracle Linux 8 to the latest available release level.

2025年8月29日時点では、Oracle Linux 8.10のOracleLinux-R8-U10-Server-aarch64-dvd.isoがダウンロードする対象でした。


続いて、Oracle Database 19cのARM版のメディアをダウンロードするため、以下のサイトを開きます。

Oracle Database Software Download
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html


画面をスクロールし、Oracle Database 19c for LINUX ARM (aarch64)を見つけます。

ZIPをクリックします。


ライセンスの同意が求められます。こちらは以下のライセンスになります。

Oracle Technology Network License Agreement
https://www.oracle.com/downloads/licenses/standard-license.html

I reviewed and accept the Oracle License Agreementにチェックを入れて、Download LINUX.ARM64_1919000_db_home.zipをクリックすると、オラクル・プロファイルによるサインイン画面が表示されます。オラクル・プロファイルについては、こちらに説明があります。


オラクル・プロファイルによるサインインを行なうと、ファイルのダウンロードが開始します。

手元のホストに、OracleLinux-R8-U10-aarch64-dvd.isoLINUX.ARM64_1919000_db_home.zipがダウンロードされました。

orcl19c % ls

LINUX.ARM64_1919000_db_home.zip OracleLinux-R8-U10-aarch64-dvd.iso

orcl19c % 




仮想マシンの作成



VirtualBoxで仮想マシンを作成し、ダウンロードしたメディアよりOracle Linuxをインストールします。

VirtualBoxマネージャーを起動し、新規を実行します。


仮想マシンの設定画面が開きます。

最初はVirtual machine name and operating systemのセクションが開きます。

VM NameAPEXISO Imageに先ほどダウンロードしたOracleLinux-R8-U10-aarch64-dvd.isoを選択します。Proceed with Unattended Installationチェックを外します。

OSLinuxOD DistributionOracle LinuxOS VersionOracle Linux (ARM 64-bit)です。


Proceed with Unattended Installationのチェックを外すと、Set up unattended guest OS installationのセクションは設定不要になります。

Specify virtual hardwareのセクションを開きます。

ホスト・コンピュータが持つリソース次第ですが、本記事ではBase Memory16384MB、Number of CPUs8に設定しています。

Use EFIチェックします。


Specify virtual hard diskのセクションを開きます。

Disk size64GBとしました。

以上の設定で仮想マシンを作成します。

完了をクリックします。


仮想マシンAPEXが作成されます。ディスプレイを開きます。


ディプレイが小さいと作業がしにくいので、Scale Factor200%に変更します。

OKをクリックします。


仮想マシンAPEXを選択し、起動をクリックします。デフォルトでGUI付きで仮想マシンを起動します。


仮想マシンが起動すると、Linuxのインストーラが起動します。画面右上のアイコンをクリックすると、VirtualBoxからのメッセージを非表示にできます。




Oracle Linuxのインストール



仮想マシンが起動するとインストーラーが開始します。

デフォルトではTest this media & install Oracle Linux 8.10.0が選択されています。メディアのテストをスキップする場合は、上矢印Install Oracle Linux 8.10.0を選択し、Enterを入力します。


Oracle Linuxのインストーラーが起動します。

データベースのインストールにユニバーサル・インストーラ(GUIのツール)を使います。ユニバーサル・インストーラーを日本語で扱えるように、言語に日本語を選択します。

続行をクリックします。


インストール概要のうち、時刻と日付rootパスワードインストール先ネットワークとホスト名をデフォルトから変更します。


時刻と日付を開きます。

日本の上をクリックし、地域アジア都市東京になることを確認します。

完了をクリックし、変更を確定します。


rootパスワードを開きます。

rootパスワードと確認に、パスワードとなる文字列を入力します。

弱いパスワードの場合、変更を確定するには完了2回クリックする必要があります。


インストール先を開きます。

インストール先のディスクやストレージの設定はデフォルトの設定を適用します。

変更せずに完了をクリックします。


ネットワークとホスト名を開きます。

Ethernetオンに変更し、設定を開きます。


開いたダイアログから、全般を選択します。

優先的に自動接続するチェックを入れ、保存をクリックします。


ネットワークとホスト名の設定を完了します。


以上で、最低限必要な設定が完了しました。

インストールの開始をクリックします。


Oracle Linuxのインストールが開始します。


しばらくすると(10分弱)インストールが完了します。

システムの再起動をクリックします。


仮想マシンが再起動し、初期セットアップの画面が表示されます。

最初にライセンス情報をクリックします。


画面上では読みにくいですが、ORACLE LINUX LICENSE AGREEMENTが記載されています。
https://www.oracle.com/downloads/licenses/oracle-linux-license.html

ライセンスを確認し、ライセンス契約に同意しますチェックを入れます。

完了をクリックします。


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


ようこそ画面が表示されます。次へ進みます。


位置情報サービスオフにします。次へ進みます。


オンラインアカウントの設定はスキップします。


ユーザー情報フルネームとしてOracle DBAユーザー名としてoracleを入力します。ユーザーoracleは、Oracle Databaseの所有者とするため、ここでは必ずoracleを指定します。フルネームは任意なのでOracle DBA以外でもかまいません。

次へ進みます。


ユーザーoracleのパスワードを指定します。次へ進みます。


使用する準備が完了します。

Oracle Linux Serverを使い始めるをクリックします。


GNOMEデスクトップの使い方の案内が表示されます。画面を閉じます


ナビゲーション・バー右端にあるメニューを開くと、すでにユーザーOracle DBAでサインイン済みであることが確認できます。


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


Oracle Databaseをインストールする準備



ホスト・コンピュータよりSSHでサインインできるようにします。

VirtualBoxマネージャーより仮想マシンAPEXネットワークを開きます。


設定のExpertを選ぶと、ネットワークポートフォワーディングのボタンが現れます。

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


プラス(+)アイコンをクリックし、ポートフォワーディングの設定を1行増やします。

名前SSHホストポート10022ゲストポート22とします。ホストの10022番ポートを宛先としてSSH接続を行うと、ゲストの22番ポート(これはSSHサービスが待ち受けているポート番号)に転送されます。ホストポートは10022以外でも、ホストで未使用のポートであれば問題ありません。

OKをクリックします。


ネットワークに戻るので、OKをクリックします。


以上でホスト・コンピュータからSSHサービスに接続できるようになりました。

ホスト・コンピュータより仮想マシンにユーザーoracleでサインインします。

ssh -p 10022 oracle@localhost

orcl19c % ssh -p 10022 oracle@localhost

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

ED25519 key fingerprint is SHA256:1vsoUqzEMrqsP1+2u20YEtwUBmzO02DMbkHq/n+0a18.

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.

oracle@localhost's password: **********

Activate the web console with: systemctl enable --now cockpit.socket


Last login: Fri Aug 29 13:59:26 2025

[oracle@localhost ~]$ 


sudo -sを実行し、rootユーザーに切り替えます。

sudo -s

[oracle@localhost ~]$ sudo -s


あなたはシステム管理者から通常の講習を受けたはずです。

これは通常、以下の3点に要約されます:


    #1) 他人のプライバシーを尊重すること。

    #2) タイプする前に考えること。

    #3) 大いなる力には大いなる責任が伴うこと。


[sudo] oracle のパスワード: **********

[root@localhost oracle]# 


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

dnf -y update

[root@localhost oracle]# dnf -y update

Oracle Linux 8 BaseOS Latest (aarch64)                                        4.9 MB/s | 139 MB     00:28    

Oracle Linux 8 Application Stream (aarch64)                                   3.8 MB/s |  64 MB     00:17    

Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (aarch64)   3.9 MB/s |  71 MB     00:18    

メタデータの期限切れの最終確認: 0:00:05 前の 2025年08月29日 14時14分52秒 に実施しました。

依存関係が解決しました。

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

 パッケージ                     Arch    バージョン                                    リポジトリー      サイズ

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

アップグレード:

 NetworkManager                 aarch64 1:1.40.16-20.0.1.el8_10                       ol8_baseos_latest 2.1 M

 NetworkManager-adsl            aarch64 1:1.40.16-20.0.1.el8_10                       ol8_baseos_latest 155 k

 NetworkManager-bluetooth       aarch64 1:1.40.16-20.0.1.el8_10                       ol8_baseos_latest 178 k

 NetworkManager-config-server   noarch  1:1.40.16-20.0.1.el8_10                       ol8_baseos_latest 143 k

 NetworkManager-libnm           aarch64 1:1.40.16-20.0.1.el8_10                       ol8_baseos_latest 1.9 M

 NetworkManager-team            aarch64 1:1.40.16-20.0.1.el8_10                       ol8_baseos_latest 159 k


[中略]


  xorg-x11-server-common-1.20.11-26.el8_10.aarch64                                                            

  yelp-2:3.28.1-3.el8_10.1.aarch64                                                                            

  yelp-libs-2:3.28.1-3.el8_10.1.aarch64                                                                       

  yelp-xsl-3.28.0-2.el8_10.1.noarch                                                                           

  yum-4.7.0-21.0.1.el8_10.noarch                                                                              

インストール済み:

  kernel-uek-5.15.0-311.185.9.el8uek.aarch64                                                                  

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

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

  llvm-compat-libs-17.0.6-3.0.1.module+el8.10.0+90583+7e562d96.aarch64                                        


完了しました!

[root@localhost oracle]# 


Oracle Database 19cのプリインストール・パッケージをインストールします。

今回のインストール対象であるプリインストール・パッケージは以下です。
oracle-database-preinstall-19c-1.0-3.el8.aarch64.rpm

dnf -y install oracle-database-preinstall-19c

[root@localhost oracle]# dnf -y install oracle-database-preinstall-19c

メタデータの期限切れの最終確認: 0:01:33 前の 2025年08月29日 14時20分56秒 に実施しました。

依存関係が解決しました。

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

 パッケージ                        Arch       バージョン                           リポジトリー         サイズ

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

インストール:

 oracle-database-preinstall-19c    aarch64    1.0-3.el8                            ol8_appstream         31 k

依存関係のインストール:

 cpp                               aarch64    8.5.0-28.0.1.el8_10                  ol8_appstream        9.0 M

 gcc                               aarch64    8.5.0-28.0.1.el8_10                  ol8_appstream         19 M

 glibc-devel                       aarch64    2.28-251.0.3.el8_10.25               ol8_baseos_latest     93 k

 glibc-headers                     aarch64    2.28-251.0.3.el8_10.25               ol8_baseos_latest    490 k


[中略]


インストール済み:

  cpp-8.5.0-28.0.1.el8_10.aarch64                    gcc-8.5.0-28.0.1.el8_10.aarch64                          

  glibc-devel-2.28-251.0.3.el8_10.25.aarch64         glibc-headers-2.28-251.0.3.el8_10.25.aarch64             

  gssproxy-0.8.0-21.el8.aarch64                      isl-0.16.1-6.el8.aarch64                                 

  kernel-headers-4.18.0-553.71.1.el8_10.aarch64      keyutils-1.5.10-9.0.1.el8.aarch64                        

  ksh-20120801-267.0.1.el8.aarch64                   libaio-devel-0.3.112-1.el8.aarch64                       

  libasan-8.5.0-28.0.1.el8_10.aarch64                libatomic-8.5.0-28.0.1.el8_10.aarch64                    

  libev-4.24-6.el8.aarch64                           libgfortran-8.5.0-28.0.1.el8_10.aarch64                  

  libnsl-2.28-251.0.3.el8_10.25.aarch64              libstdc++-devel-8.5.0-28.0.1.el8_10.aarch64              

  libubsan-8.5.0-28.0.1.el8_10.aarch64               libverto-libev-0.3.2-2.el8.aarch64                       

  libxcrypt-devel-4.1.1-6.el8.aarch64                lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.aarch64  

  make-1:4.2.1-11.el8.aarch64                        nfs-utils-1:2.3.3-64.0.1.el8_10.aarch64                  

  oracle-database-preinstall-19c-1.0-3.el8.aarch64   rpcbind-1.2.5-10.el8.aarch64                             

  sysstat-11.7.3-13.0.2.el8_10.aarch64              


完了しました!

[root@localhost oracle]# 


オペレーティング・システムの準備は完了です。

shutdownコマンドを実行し、一旦、再起動します。

shutdown -r now

[root@localhost oracle]# shutdown -r now

Connection to localhost closed by remote host.

Connection to localhost closed.

orcl19c % 


仮想マシンの再起動が完了したら、ホストにあるOracle Database 19c EEのメディアを仮想マシンにアップロードします。sftpを使用します。

sftp -P 10022 oracle@localhost
put LINUX.ARM64_1919000_db_home.zip
exit


orcl19c % sftp -P 10022 oracle@localhost

oracle@localhost's password: *******

Connected to localhost.

sftp> put LINUX.ARM64_1919000_db_home.zip

Uploading LINUX.ARM64_1919000_db_home.zip to /home/oracle/LINUX.ARM64_1919000_db_home.zip

LINUX.ARM64_1919000_db_home.zip                                             100% 2304MB  57.6MB/s   00:39    

sftp> exit

orcl19c % 


仮想マシンにSSHで接続し、rootユーザーに切り替えます。

Universal Installerを実行する前に必要な設定を行ないます。

ssh -p 10022 oracle@localhost
sudo -s

orcl19c % ssh -p 10022 oracle@localhost

oracle@localhost's password: ********

Activate the web console with: systemctl enable --now cockpit.socket


Last login: Fri Aug 29 14:38:13 2025 from 10.0.2.2

[oracle@localhost ~]$ sudo -s

[sudo] oracle のパスワード: *********

[root@localhost oracle]# 


ユーザーoracleの所属グループにoinstallを加え、ユーザーoracleの主グループにします。

usermod --gid oinstall --groups oracle,wheel,oinstall oracle

[root@localhost oracle]# usermod --gid oinstall --groups oracle,wheel,oinstall oracle

[root@localhost oracle]#


ディレクトリ/opt/oraInventoryおよび/opt/oracle/product/19c/dbhomeを作成します。所有者はoracleです。

mkdir /opt/oraInventory
chown oracle:oinstall /opt/oraInventory
mkdir -p /opt/oracle/product/19c/dbhome
chown -R oracle:oinstall /opt/oracle

[root@localhost oracle]# mkdir /opt/oraInventory

[root@localhost oracle]# chown oracle:oinstall /opt/oraInventory

[root@localhost oracle]# mkdir -p /opt/oracle/product/19c/dbhome

[root@localhost oracle]# chown -R oracle:oinstall /opt/oracle

[root@localhost oracle]# exit

exit

[oracle@localhost ~]$ exit

ログアウト

Connection to localhost closed.

orcl19c % 


SSHを終了します。

コンソールよりユーザーoracle(表示名はOracle DBA)でサインインし、Oracle Database 19cのインストールと構成を行ないます。


ユーザーoracleのパスワードを入力し、サインインをクリックします。


アクティビティからターミナルを実行します。


LINUX.ARM64_1919000_db_home.zip/opt/oracle/product/19c/dbhome以下に展開します。

unzip -d /opt/oracle/product/19c/dbhome LINUX.ARM64_1919000_db_home.zip


展開が完了したら/opt/oracle/product/19c/dbhomeに移動し、ユニバーサル・インストーラーを起動します。

cd /opt/oracle/product/19c/dbhome
./runInstaller


ユニバーサル・インストーラーが起動します。


Oracle Databaseのインストールと構成



これからPDBをひとつ含むデータベースを作成します。

インストール・オプションとして、単一インスタンス・データベースを作成および構成します。を選択します。

次へ進みます。


システム・クラスとしてデスクトップを選択します。

次へ進みます。


インストール構成を設定します。

それぞれの要件に合わせて設定する内容です。今回は以下の設定でデータベースを構成しています。

Oracleベース: /opt/oracle
データベース・ファイルの位置: /opt/oracle/oradata
データベースのエディション: Enterprise Edition
キャラクタ・セット: Unicode (AL32UTF8)
OSDBAグループ: oinstall
グローバル・データベース名: ORCL
パスワード: 任意の文字列
コンテナ・データベースとして作成チェックする
プラガブル・データベース名: ORCLPDB1

次へ進みます。


インベントリ・ディレクトリとして/opt/oraInventoryoraInventoryグループ名としてoinstallを指定します。


構成スクリプトを自動的に実行チェックを入れ、sudoの使用を選択します。

パスワードに、ユーザーoracleパスワードを入力します。

次へ進みます。


前提条件チェックが実行されます。

今回の構成では、スワップ・サイズが足りないと警告されました。スワップ・サイズは後でも拡張できるので、すべて無視チェックを入れます。

次へ進みます。


サマリーが表示されます。

インストールをクリックし、データベースのインストールを開始します。


イントーラーが開始すると、特権ユーザーで構成スクリプトを実行してよいか確認を求められます。

はいをクリックし、インストールを継続します。


しばらくすると(10分弱)データベースの構成が完了します。

閉じるをクリックし、ユニバーサル・インストーラーを終了します。


データベースの接続を確認します。

export NLS_LANG=American_America.AL32UTF8
. oraenv
ORACLE_SID = [oracle] ORCL
sqlplus sys@localhost/orclpdb1 as sysdba
select banner_full from v$version;
exit


以上でApple M1 MacにLinuxの仮想マシンを作成し、その仮想マシンでOracle Database 19cを稼働させることができました。

Oracle APEXおよびOracle REST Data Servicesのインストールは、Intelと同じ手順で実施できます。

追記

レスポンス・ファイルを指定することにより、GUIを使わずにデータベースを構成できます。

上記の手順で作成されたレスポンス・ファイルを元に、一部を変更しました。こちらのレスポンス・ファイルになります。

GUIを使わないインストール手順では、ユーザーoracleはパッケージoracle-database-preinstall-19cのインストール時に作成されます。所属するグループはoinstallになるため、ディレクトリ/opt/oraInventoryおよび/opt/oracleの作成手順を以下に変えます。

mkdir /opt/oraInventory
chown oracle:oinstall /opt/oraInventory
mkdir -p /opt/oracle/product/19c/dbhome
chown -R oracle:oinstall /opt/oracle


root.shの実行はsudoではなく、rootに変更しています。

SYS、SYSTEM、PDBADMINのパスワードが未指定なので、指定する必要があります。

oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.PDBADMIN=

memoryLimit5970MBとなっています。環境に合わせて変更します。

oracle.install.db.config.starterdb.memoryLimit=5970

レスポンス・ファイルを/home/oracle/install.rspとして作成した場合、以下のコマンドでデータベースの構成を行います。

/opt/oracle/product/19c/dbhome/runInstaller -silent -responseFile /home/oracle/install.rsp
/opt/oracle/product/19c/dbhome/runInstaller -silent -executeConfigTools -responseFile /home/oracle/install.rsp


最初のコマンドの実行で、rootのパスワードが要求されます。また、スワップが足りないため警告が表示されています。

[oracle@localhost ~]$ /opt/oracle/product/19c/dbhome/runInstaller -silent -responseFile /home/oracle/install.rsp 

Launching Oracle Database Setup Wizard...



 Enter password for 'root' user: ********

[WARNING] [INS-13014] Target environment does not meet some optional requirements.

   CAUSE: Some of the optional prerequisites are not met. See logs for details. /opt/oraInventory/logs/InstallActions2023-07-03_10-49-59AM/installActions2023-07-03_10-49-59AM.log

   ACTION: Identify the list of failed prerequisite checks from the log: /opt/oraInventory/logs/InstallActions2023-07-03_10-49-59AM/installActions2023-07-03_10-49-59AM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.

The response file for this session can be found at:

 /opt/oracle/product/19c/dbhome/install/response/db_2023-07-03_10-49-59AM.rsp


You can find the log of this install session at:

 /opt/oraInventory/logs/InstallActions2023-07-03_10-49-59AM/installActions2023-07-03_10-49-59AM.log

Successfully Setup Software with warning(s).

As install user, execute the following command to complete the configuration.

/opt/oracle/product/19c/dbhome/runInstaller -executeConfigTools -responseFile /home/oracle/install.rsp [-silent]



[oracle@localhost ~]$ /opt/oracle/product/19c/dbhome/runInstaller -silent -executeConfigTools -responseFile /home/oracle/install.rsp

Launching Oracle Database Setup Wizard...


You can find the logs of this session at:

/opt/oraInventory/logs/InstallActions2023-07-03_10-58-36AM


Successfully Configured Software.

[oracle@localhost ~]$ 


コマンドの実行が完了すると、GUIでの作業と同じ状態になります。