Red Hat Enterprise Linux 8 に Oracle Database 19c をインストール

Oracle Database 19c for Linux は Red Hat Enterprise 7/8、Oracle Linux 7/8 で動作保証されています。[Oracle Database 19cインストレーション・ガイド](https://docs.oracle.com/cd/F19136_01/ladbi/supported-red-hat-enterprise-linux-8-distributions-for-x86-64.html#GUID-B1487167-84F8-4F8D-AC31-A4E8F592374B) には OS の要件が記載されています。
しかし当初 Red Hat Enterprise Linux 8 はサポート対象外だった関係で、単純にインストールしようとすると警告メッセージが出力される、動作保証されない等の問題が発生します。本記事では Red Hat Enterprise Linux 8 に Oracle Grid Infrastructure 19cとOracle Database 19c をインストールする際の注意点を書いています。

# Grid Infrastructure のインストール
インストレーション・ガイドに記載された条件を満たした状態で gridSetup.sh を実行すると以下の画面が表示されます。

![gridSetup.sh Error](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181284/7003bd05-b278-4c2b-c1bd-b4e9accb7b7d.png)

Red Hat Enterprise Linux 8 で Grid Infrastructure を利用するためには少なくとも 19.7（または19.6 + パッチ）の適用が必要です。
このため Grid Infrastructureの「インストール前に」パッチを適用する必要があります。まず Grid Infrastructure のメディアを展開した後に$ORACLE_HOME/OPatchディレクトリを最新の OPatch に入れ替えます。この作業を忘れるとRU 適用エラーが発生してインストール前に処理が停止します。

```SHELL: OPatch の最新化
$ cd $ORACLE_HOME
$ mv OPatch OPatch.org
$ unzip ~/p6880880_122010_Linux-x86-64.zip
Archive:  p6880880_122010_Linux-x86-64.zip
   creating: OPatch/
  inflating: OPatch/README.txt
  inflating: OPatch/datapatch
   ...
```

次に RU のメディアを用意し、gridSetup.sh に -applyRU オプションとパッチが格納されたディレクトリを指定して実行します。

```SHELL:
$ ./gridSetup.sh -applyRU ~/grid_patch/33509923/
Preparing the home to patch...
Applying the patch /home/grid/grid_patch/33509923/...
Successfully applied the patch.
The log can be found at: /tmp/GridSetupActions2022-04-06_09-42-20AM/installerPatchActions_2022-04-06_09-42-20AM.log
Launching Oracle Grid Infrastructure Setup Wizard...
```

RU の適用が行われた後、Grid Infrastructure のインストーラが起動します。

![Grid Infrastructure Installer](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181284/aea0c649-769e-4aa2-f5f3-d187cbf57b89.png)

インストーラ起動後の作業は同じです。

# Oracle Database のインストール
Oracle Database 19c のインストールでも同じ問題が発生します。

![Oracle Database 19c Installer](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181284/f532674f-4e62-2040-0e98-66b95a38077d.png)

インストーラー起動前に環境変数 CV_ASSUME_DISTID の設定を行い、runInstaller.sh コマンドの指定に -applyRU オプションに Oracle Database 用 RU のディレクトリを指定してパッチを適用してからインストールを行います。[マニュアル](https://docs.oracle.com/cd/F19136_01/rnrdm/linux-platform-issues.html#GUID-32A0C395-2AA0-446B-9032-5BCD19BF6264) には-applyOneOffsオプションの指定も記載されていますが、不具合が確認されているため一緒にインストールしないことをお勧めします。

```SHELL:
$ export CV_ASSUME_DISTID=OL7
$ cd $ORACLE_HOME
$ ./runInstaller -applyRU ~/dbpatch/33515361/
Preparing the home to patch...
Applying the patch /home/oracle/dbpatch/33515361/...
Successfully applied the patch.
The log can be found at: /opt/oraInventory/logs/InstallActions2022-04-06_10-45-33PM/installerPatchActions_2022-04-06_10-45-33PM.log
Launching Oracle Database Setup Wizard...
```

インストーラー起動後のオペレーションは変わりません。

![Oracle Database Installer](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181284/9b9acb7c-c2c3-053a-a39c-7251ff449f89.png)


# 参考資料
- 19c gridSetup.sh failed on RHEL 8 (Doc ID 2752065.1)
- Requirements for Installing Oracle Database/Client 19c on OL8 or RHEL8 64-bit (x86-64) (Doc ID 2668780.1)	
- How to Apply a Grid Infrastructure Patch Before Grid Infrastructure Configuration (before root.sh or rootupgrade.sh or gridsetup.bat) is Executed (Doc ID 1410202.1)