Oracle Database 23ai Free を試す

# Oracle Database 23ai Free とは
　Oracle Database 23ai Free がダウンロードできるようになりました。従来の Express Edition に相当するバージョンになります。いくつかリソース使用量の制約はありますが、それ以外はほとんどの機能を使えるバージョンになります。
 
ダウンロードは[こちら](https://www.oracle.com/database/free/get-started/)からできます。Docker イメージや Oracle VM イメージと RPM パッケージ版が用意されています。本記事では Red Hat Enterprise Linux 8 に RPM 版をインストールしています。

# インストール
　[インストレーションガイド](https://docs.oracle.com/en/database/oracle/oracle-database/23/xeinl/index.html)を熟読しても良いのですが、事前準備は Pre Install RPM をインストールするのが最も簡単です。この検証は Red Hat Enterprise Linux 8 Update 8 で実行しています。Pre Install RPM をインストールしようとすると ksh と compat-openssl10 のパッケージを要求されますのでまずインストールします。

```SHELL: ksh と compat-openssl10 のインストール
# rpm -ivh ksh-20120801-257.el8.x86_64.rpm 
warning: ksh-20120801-257.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying...  ################################# [100%]
Preparing...  ################################# [100%]
Updating / installing...
   1:ksh-20120801-257.el8 ################################# [100%]
[root@rel88-6 Packages]# rpm -uvivh compat-openssl10-1.0.2o-4.el8_6.x86_64
4.rpm 
warning: compat-openssl10-1.0.2o-4.el8_6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying...  ################################# [100%]
Preparing...  ################################# [100%]
Updating / installing...
   1:compat-openssl10-1:1.0.2o-4.el8_6 ################################# [100%]
#
```

必要なパッケージがインストールできたら Pre Install RPM をインストールします。カーネル・パラメーターや必要な事前設定をほとんど自動的に実行してくれます。

```SHELL: 必要な RPM パッケージのインストール
# rpm -ivh oracle-database-preinstall-23ai-1.0-2.el8.x86_64.rpm 
warning: oracle-database-preinstall-23ai-1.0-2.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
Verifying...  ################################# [100%]
Preparing...  ################################# [100%]
Updating / installing...
   1:oracle-database-preinstall-23ai-1  ################################# [100%]
```

最後に Oracle Database 23ai のパッケージをインストールインストールします。

```SHELL: Pre-Install RPM のインストール
# rpm -ivh oracle-database-free-23ai-1.0-1.el8.x86_64.rpm 
warning: oracle-database-free-23ai-1.0-1.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
Verifying...  ################################# [100%]
Preparing...  ################################# [100%]
Updating / installing...
   1:oracle-database-free-23ai-1.0-1  ################################# [100%]
[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.
```

この時点でカーネル・パラメーターや管理用 OS ユーザーである oracle ユーザーは作成されています。Oracle Database 23ai RPM パッケージのインストール時に出力された指示にしたがってデータベースを構築します。root ユーザーで「/etc/init.d/oracle-free-23ai configure」コマンドを実行します。実行中にデータベース・ユーザー SYS/SYSTEM/PDBADMIN ユーザーの共通パスワードを２回入力します。

```SHELL: Oracle Database 23ai のインストール
# /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:
Password cannot be null. Enter password: <<パスワード入力>>
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: rel88-1/FREEPDB1
     Multitenant container database: rel88-1
# 
```

エラーが発生せずにコマンドが完了したらセットアップは終了です。


# 利用開始
Pre Install RPM の設定で oracle ユーザーは自動的に作成されますが、環境変数までは設定してくれないので oracle ユーザーの $HOME/.bash_profile 等に設定します。

```SHELL: 環境変数の設定
$ cat .bash_profile
export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree/
export PATH=${PATH}:${ORACLE_HOME}/bin
export NLS_LANG=Japanese_Japan.AL32UTF8
export ORACLE_SID=FREE
```

デフォルトのリスナー（LISTENER）が作成され、tnsnames.ora には FREE の接続子が追加されています。

```SHELL: tnsnames.ora ファイルの確認
$ cat $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /opt/oracle/product/23ai/dbhomeFree/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

FREE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbsrv1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = FREE)
    )
  )

LISTENER_FREE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = dbsrv1)(PORT = 1521))
```

SQL*Plus を使って接続します。

```SQL: SQL*Plus によるローカル接続
$ sqlplus / as sysdba

SQL*Plus: Release 23.0.0.0.0 - Production on 金 5月 31 13:47:25 2024
Version 23.4.0.24.05

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

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.4.0.24.05
に接続されました。
SQL>
```

デフォルトで FREEPDB1 という PDB が作成されています。

``` SQL: PDB の確認
SQL> SHOW PDBS

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FREEPDB1                       READ WRITE NO
```

# 参考
以下の URL を参考にしました。
- [Oracle Database Free 23ai for Linux x86_64 Installation](https://docs.oracle.com/en/database/oracle/oracle-database/23/xeinl/index.html) F77392-09 May 2024
- [Installing Oracle Database 23ai Free](https://www.oracle.com/database/free/get-started/)


Author: Noriyoshi Shinoda / Date: Jun 1, 2024