[23ai] 3コマンドで Oracle Database 23ai Free の インストール

## やれること
2024/5/2にリリースされた Oracle Database 23ai Freeをインストール。
Oracle Linux 8.8をデフォルトインストールで入れた状態からスタートします。

### 環境
・Oracle Linux 8.8
・Oracle Database 23ai Free

・作業するOSユーザ：root

### 手順で実施できること
・手順内で OSユーザ「oracle」が作成される
・Oracle DatabaseのS/Wがインストールされる。
・データベース「FREE」が作成される
・SQL*Plusが使えるようになる。

### 参考情報
以下の記事がお勧めです。
https://qiita.com/nakaie/items/609a85a34301fc9ed79c

## Oracle Database 23ai Free 環境の構築

１．インストールファイルの入手
  https://www.oracle.com/database/free/get-started/

　以下のファイルをダウンロードして、Linux環境に配置します。
  ・oracle-database-free-23ai-1.0-1.el8.x86_64.rpm


２．Oracle DatabaseのインストールとDB作成

##### 実行するコマンド一覧（osユーザ「root」で実行）
```
--★ インストーラが配置されたことを確認
ls -la oracle*

--★ dnfでDatabaseのインストール
dnf install -y oracle-database-free-23ai-1.0-1.el8.x86_64.rpm

--★ データベースの作成（実行中にパスワードを設定）
/etc/init.d/oracle-free-23ai configure

```

##### 実行例（osユーザ「root」で実行）
★の部分が入力箇所です
```
--★ インストーラが配置されたことを確認
[root@host23 ~]# ls -la oracle*
-rw-r--r--. 1 root root 1378076936  5月  3 08:43 oracle-database-free-23ai-1.0-1.el8.x86_64.rpm

--★ dnfでDatabaseのインストール
[root@host23 ~]# dnf install -y oracle-database-free-23ai-1.0-1.el8.x86_64.rpm
メタデータの期限切れの最終確認: 0:07:18 前の 2024年05月03日 08時40分46秒 に実施しました。
依存関係が解決しました。
==============================================================================================================================
 パッケージ                                アーキテクチャー       バージョン               リポジトリー                 サイズ
==============================================================================================================================
インストール:
 oracle-database-free-23ai                 x86_64                 1.0-1                    @commandline                 1.3 G

トランザクションの概要
==============================================================================================================================
インストール  1 パッケージ

合計サイズ: 1.3 G
インストール後のサイズ: 3.6 G
パッケージのダウンロード:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                      1/1
  scriptletの実行中: oracle-database-free-23ai-1.0-1.x86_64                                                               1/1
  インストール中   : oracle-database-free-23ai-1.0-1.x86_64                                                               1/1
  scriptletの実行中: oracle-database-free-23ai-1.0-1.x86_64                                                               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.

  検証             : oracle-database-free-23ai-1.0-1.x86_64                                                               1/1

インストール済み:
  oracle-database-free-23ai-1.0-1.x86_64


--★ データベースの作成（実行中にパスワードを設定）
[root@host23 ~]# /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.
SYSユーザー・パスワードを入力してください:
**********
SYSTEMユーザー・パスワードを入力してください:
*********
PDBADMINユーザー・パスワードを入力してください:
************
DB操作の準備
7%完了
データベース・ファイルのコピー中
29%完了
Oracleインスタンスの作成および起動中
30%完了
33%完了
36%完了
39%完了
43%完了
データベース作成の完了
47%完了
49%完了
50%完了
プラガブル・データベースの作成
54%完了
71%完了
構成後アクションの実行
93%完了
カスタム・スクリプトを実行中
100%完了
データベースの作成が完了しました。詳細は、次の場所にあるログ・ファイルを参照してください:
/opt/oracle/cfgtoollogs/dbca/FREE。
データベース情報:
グローバル・データベース名:FREE
システム識別子(SID):FREE
詳細はログ・ファイル"/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log"を参照してください。

Connect to Oracle Database using one of the connect strings:
     Pluggable database: host23/FREEPDB1
     Multitenant container database: host23
[root@host23 ~]#
```


３．使いやすくするための設定

＜構築されたDB＞
    OSユーザ：oracle
インストールパス(ORACLE_HOME)：/opt/oracle/product/23ai/dbhomeFree
SID：FREE

 OSユーザの環境変数に設定するのがおすすめです
```
--★/home/oracle/.bash_profileに以下を設定
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree
export ORACLE_SID=FREE
export NLS_LANG=Japanese_Japan.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH
```



４．インストール確認（osユーザ 「oracle」 で実行）

##### 実行するコマンド一覧
```
sqlplus / as sysdba
show parameter instance_name
show pdbs
alter session set container=FREEPDB1;
select username from dba_users order by 1;
exit
```

##### 実行例
```
--★SQL*Plusで接続します。
[oracle@host23 ~]$ sqlplus / as sysdba

SQL*Plus: Release 23.0.0.0.0 - Production on 金 5月 3 08:59:23 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
に接続されました。

--★インスタンス名を確認します（FREEです）
SQL> show parameter instance_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      FREE

--★作成されているPDBを確認します（FREEPDB1があります）
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FREEPDB1                       READ WRITE NO
         
--★FREEPDB1に接続します
SQL> alter session set container=FREEPDB1;

セッションが変更されました。

--★DBユーザを確認します（初期ユーザのみでサンプルデータはない）

SQL> select username from dba_users order by 1;

USERNAME
--------------------------------------------------------------------------------
ANONYMOUS
APPQOSSYS
AUDSYS
CTXSYS
DBSFWUSER
DBSNMP
DGPDB_INT
DIP
DVF
DVSYS
GGSHAREDCAP

USERNAME
--------------------------------------------------------------------------------
GGSYS
GSMADMIN_INTERNAL
GSMCATUSER
GSMUSER
LBACSYS
MDDATA
MDSYS
OJVMSYS
OLAPSYS
OUTLN
PDBADMIN

USERNAME
--------------------------------------------------------------------------------
REMOTE_SCHEDULER_AGENT
SYS
SYS$UMF
SYSBACKUP
SYSDG
SYSKM
SYSRAC
SYSTEM
VECSYS
WMSYS
XDB

USERNAME
--------------------------------------------------------------------------------
XS$NULL

34行が選択されました。
```