Oracle Database 21c Clientのインストールを試す

Oracle Cloud環境ではOracle Database 21cの提供が始まりました。これに伴いOracle Database 21c Clientがダウンロードできるようになったのでインストールを試しました。

# メディアの準備
Oracle Database 21c Clientは[このページ](https://www.oracle.com/database/technologies/oracle21c-linux-downloads.html)からダウンロードでできます。プラットフォームは今のところLinux x86-64版のみです。ファイルが２つありますがどちらを使っても問題ありません。

- LINUX.X64_210000_client.zip ＝ 通常のインストールメディアです。　
- LINUX.X64_210000_client_home.zip ＝ $ORACLE_HOMEに展開してからインストーラを起動するタイプのメディアです。

本記事ではLINUX.X64_210000_client.zipを使用します。インストール方法については英語版のみですが[インストレーション・ガイド](https://docs.oracle.com/en/database/oracle/oracle-database/21/lacli/index.html)が提供されています。

# OSの準備
## プラットフォーム
  Oracle Database 21c Client (Linux)でサポートされるプラットフォームは以下の通りです。

- Oracle Linux 8.2 (Unbreakable Enterprise Kernel 6: 5.4.17-2011.1.2.el8uek.x86_64 / Red Hat Compatible Kernel: 4.18.0-193.el8.x86_64) 以上
- Oracle Linux 7.6 (Unbreakable Enterprise Kernel 5: 4.14.35-1902.0.18.el7uek.x86_64) 以上
- Oracle Linux 7.4 (Unbreakable Enterprise Kernel 4: 4.1.12-124.32.3.el7uek.x86_64) 以上
- Red Hat Enterprise Linux 8.2: 4.18.0-193.el8.x86_64 以上
- USE Linux Enterprise Server 15 SP1: 4.12.14-197.29-default 以上

Red Hat Enterprise Linux 7がサポート対象外になっています。

## パッケージ
　パッケージ要件はOracle Database 19c Clientから少し変わっています。全体的には必要なパッケージは減っていますが、一部追加で必要なパッケージもあります。Red Hat Enterprise Linux 8用のパッケージで比較してみます。

|Package|Oracle Database 19c|Oracle Database 21c|備考|
|:---|:---:|:---:|:---|
|bc|〇|〇||
|binutils|〇|〇||
|compat-openssl10||〇||
|elfutils-libelf|〇|〇||
|elfutils-libelf-devel|〇|||
|fontconfig-devel|〇|||
|glibc|〇|〇||
|glibc-devel|〇|〇||
|ksh|〇|〇||
|libaio|〇|〇||
|libaio-devel|〇|||
|libXrender|〇|〇||
|libX11|〇|〇||
|libXau|〇|〇||
|libXi|〇|〇||
|libXtst|〇|〇||
|libgcc|〇|〇||
|libnsl|〇|〇||
|librdmacm|〇|〇||
|libstdc++|〇|〇||
|libstdc++-devel|〇|||
|libxcb|〇|〇||
|libibverbs|〇|〇||
|make|〇|〇||
|smartmontools|〇|〇||
|sysstat|〇|〇||
|ipmiutil|〇|〇|for Intelligent Platform Management Interface|
|libnsl2|〇|〇|for Oracle Database Client only|
|libnsl2-devel|〇|〇|for Oracle Database Client only|
|net-tools|〇|〇|for Oracle RAC and Oracle Clusterware|
|nfs-utils|〇|〇|for Oracle ACFS|

上記以外にプログラミング環境用のパッケージ（JDKやコンパイラ）が必要になる場合があります。

## その他
管理用ユーザー（oracle）や所属するグループ（oinstall, dba, etc）については旧バージョンから変更は無いようです。

# インストール開始
　管理用ユーザー（oracle）が書き込める権限でインストール先のディレクトリを作成します。本記事ではORACLE_HOMEを/u01/app/oracle/product/21.0.0/client_1としています。GUI環境でログインし、展開したzipファイルからrunInstallerコマンドを実行します。

最初の画面ではインストール・タイプを指定します。Oracle Database 19c Clientと比較すると、インストールに使用されるディスク容量が増えています。
![installer type](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181284/7ce07476-dbe0-45f2-52c9-46861c7cf55a.png)

前の画面で管理者用（Administrator）を選択した場合、次の画面はインストール先のディレクトリを指定する画面になります。

![Install dest](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181284/4dd93ba3-29a2-f856-13ef-1e6450f36f68.png)

インストール要件のチェック画面です。画面ではカーネル・パラメーターの不足が報告されています。「Fix & Check Again」をクリックすると修正用のスクリプトが用意されます。

![Install config](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181284/cfce9f43-2d89-457a-b0d0-7eba81cb368f.png)

確認用の画面とインストール状況を示す画面が表示された後にrootユーザーでスクリプト実行します。

```
# cd /u01/app/oraInventory/
# sh ./orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
#
```

インストール・タイプを選択する画面で、「Custom」を選択した場合にはインストールするプロダクトを選ぶ以下の画面が追加されます。Oracle Database 21c Clientでは「Oracle Database Provider for DRDA」を選択できるようになりました。

![Install select](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181284/615f8d17-3361-fffb-1916-a520efbb9574.png)

SQL*PlusやSQLclを起動し、バージョン情報を確認します。

```
$ sql -V
SQLcl: Release 20.2.0.0 Production Build: 20.2.0.174.1557
$
$ sqlplus -V

SQL*Plus: Release 21.0.0.0.0 - Production
Version 21.1.0.0.0

$
```