VirtualBoxでOracle Linux 9 + Oracle DB 19c 環境構築（４）Oracle Database インストール

:::note
### 構築手順
![7-4_Oracle Database インストール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/6d00d935-a868-4ae1-945f-b77902f64d00.png)

1. [仮想マシン（Oracle Linux）作成](https://qiita.com/jri-oi/items/29cc151fb8f98298d044)</font>
    1. 仮想マシン作成
    1. Oracle Linux 9.5インストール<
1. [Oracle Databaseインストール事前準備](https://qiita.com/jri-oi/items/5ab379764a5af5658210)
    1. Oracle Preinstallation RPM実行(Oracleユーザ作成)
    1. ディレクトリ作成
    1. Oracle Database ソフトウェア配置
1. [Opatchインストール](https://qiita.com/jri-oi/items/9069717e478644a78e2d)
    1. RU配置
    1. Opatchインストール
1. [Oracle Database インストール](https://qiita.com/jri-oi/items/90c4ee02573eaedcc5ed)
1. [データベース作成](https://qiita.com/jri-oi/items/95d39dd312668e3ae3b2)
:::

:::note warn
インストール時に発生する問題（１～４）の詳細は下部に記載してます
:::

## 4-1. IPAフォント　インストール（問題１対応）
:::note alert
IPAフォントをインストールせずに、DBインストーラを実行すると日本語が文字化けして□になります。
:::

- 文字情報技術促進協議会のサイト（ https://moji.or.jp/ipafont/ipaex00401/ )からダウンロード


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/ec917465-d113-fd77-6e27-7706493fc16a.png)
ファイル名：IPAexfont00401.zip

 - ホームディレクトリに .fontsディレクトリを作成

```shell-session
[oracle@ol95db19c ~]$ mkdir ~/.fonts
[oracle@ol95db19c ~]$ cd ./.fonts/
[oracle@ol95db19c .fonts]$ unzip ~/IPAexfont00401.zip
Archive:  /home/oracle/IPAexfont00401.zip
   creating: IPAexfont00401/
  inflating: IPAexfont00401/ipaexg.ttf
  inflating: IPAexfont00401/ipaexm.ttf
  inflating: IPAexfont00401/IPA_Font_License_Agreement_v1.0.txt
  inflating: IPAexfont00401/Readme_IPAexfont00401.txt
```

- IPAフォントをインストール
```shell-session
[oracle@ol95db19c .fonts]$ fc-cache -fv
Font directories:
        /usr/share/X11/fonts/Type1
（中略）
/home/oracle/.fontconfig: not cleaning non-existent cache directory
/usr/bin/fc-cache-64: succeeded
```

## 4-2. 環境変数設定（問題２対応）
:::note alert
Oracle database 19cリリース時において、Oracle Linux 9が動作保証OSでなかったため、環境変数を設定しないと、インストール時のチェックでエラーとなります。
:::
以下、Tera Termではなく、仮想マシンの画面の「端末」から実行

```shell-session
export CV_ASSUME_DISTID=OL7
```


## 4-3. Oracle Database インストーラ実行（問題４対応）
:::note alert
Oracle Linux 9でOracle database 19cをインストールする場合、
19.22以降のRUを合わせて適用しないとインストールがエラーで失敗します。
:::

runInstaller実行時に applyRU オプションで RUのフォルダを指定

```shell-session
[oracle@o95db19c dbhome_1]$ ./runInstaller -applyRU ./36912597/
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/92d48413-c2a4-5612-559c-81e665e91b87.png)



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/a92d4245-7c79-99e0-05e6-df9f86c14856.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/523014a0-05eb-95b5-94fb-99b925a2c0de.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/b49c35ff-9dd5-4832-64da-c0d726197cd8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/2276391a-eb0a-6847-43fc-ff9d546081fa.png)

変更なし
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/255b8735-d973-fa5d-58b7-92d163cca80f.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/963cfbc2-0ac8-c985-4d8e-2d1adcdb8a85.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/04d5aa43-27ff-dfd3-55ca-226a962a973f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/cb88cb93-a923-ecb4-db74-344e7e45b44d.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/caadf5c5-3849-7950-95d1-8219c160f8e1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/ef607990-4002-8c4c-abd0-d3712da355e6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/6897217c-41d2-78c0-d8ff-4019bc69e9a3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/3fd86440-ebc2-4ff5-1a73-b4fbd0f0fbca.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/bd9d57fb-2d51-e591-a921-fb72fb0070fe.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/ae4b1508-7012-cc34-eb92-cb6cdf5689fd.png)



## 4-4. 環境変数設定（oracleユーザ）

```shell-session
[oracle@o95db19c ~]$ vi .bash_profile
```

```.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:${PATH}
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=JAPANESE_JAPAN.UTF8
export LANG=ja_JP.UTF-8
export ORACLE_SID=ora01
```

## 問題１：Oracle Databaseインストーラ文字化け（豆腐問題）


### 事象
インストーラの日本語が以下のように□になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/56e9027f-1337-ed1d-1e81-1feb0afda78c.png)


### 原因
インストーラで利用しているIPAフォントがインストールされていないため

### 対応
文字情報技術促進協議会のサイト（ https://moji.or.jp/ipafont/ipaex00401/ )からダウンロード


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/ec917465-d113-fd77-6e27-7706493fc16a.png)

ホームディレクトリに .fontsディレクトリを作成
```shell-session
[oracle@ol95db19c ~]$ mkdir ~/.fonts
[oracle@ol95db19c ~]$ cd ./.fonts/
[oracle@ol95db19c .fonts]$ unzip ~/IPAexfont00401.zip
Archive:  /home/oracle/IPAexfont00401.zip
   creating: IPAexfont00401/
  inflating: IPAexfont00401/ipaexg.ttf
  inflating: IPAexfont00401/ipaexm.ttf
  inflating: IPAexfont00401/IPA_Font_License_Agreement_v1.0.txt
  inflating: IPAexfont00401/Readme_IPAexfont00401.txt
```

IPAフォントをインストール
```shell-session
[oracle@ol95db19c .fonts]$ fc-cache -fv
```
<details><summary>実行結果</summary>

```shell-session
Font directories:
        /usr/share/X11/fonts/Type1
        /usr/share/X11/fonts/TTF
        /home/oracle/.local/share/fonts
        /home/oracle/.local/share/flatpak/exports/share/fonts
        /var/lib/flatpak/exports/share/fonts
        /usr/local/share/fonts
        /usr/share/fonts
        /home/oracle/.fonts
        /usr/share/fonts/adobe-source-code-pro
        /usr/share/fonts/cantarell
        /usr/share/fonts/dejavu-sans-fonts
        /usr/share/fonts/dejavu-sans-mono-fonts
        /usr/share/fonts/dejavu-serif-fonts
        /usr/share/fonts/google-droid-sans-fonts
        /usr/share/fonts/google-noto
        /usr/share/fonts/google-noto-cjk
        /usr/share/fonts/google-noto-emoji
        /usr/share/fonts/google-noto-vf
        /usr/share/fonts/jomolhari-fonts
        /usr/share/fonts/julietaula-montserrat
        /usr/share/fonts/khmer-os-system-fonts
        /usr/share/fonts/liberation-mono
        /usr/share/fonts/liberation-sans
        /usr/share/fonts/liberation-serif
        /usr/share/fonts/lohit-assamese
        /usr/share/fonts/lohit-bengali
        /usr/share/fonts/lohit-devanagari
        /usr/share/fonts/lohit-gujarati
        /usr/share/fonts/lohit-kannada
        /usr/share/fonts/lohit-odia
        /usr/share/fonts/lohit-tamil
        /usr/share/fonts/lohit-telugu
        /usr/share/fonts/paktype-naskh-basic
        /usr/share/fonts/pt-sans-fonts
        /usr/share/fonts/sil-abyssinica-fonts
        /usr/share/fonts/sil-nuosu
        /usr/share/fonts/sil-padauk
        /usr/share/fonts/smc-meera
        /usr/share/fonts/stix-fonts
        /usr/share/fonts/thai-scalable
        /usr/share/fonts/urw-base35
        /home/oracle/.fonts/IPAexfont00401
/usr/share/X11/fonts/Type1: skipping, no such directory
/usr/share/X11/fonts/TTF: skipping, no such directory
/home/oracle/.local/share/fonts: skipping, no such directory
/home/oracle/.local/share/flatpak/exports/share/fonts: skipping, no such directory
/var/lib/flatpak/exports/share/fonts: skipping, no such directory
/usr/local/share/fonts: skipping, no such directory
/usr/share/fonts: caching, new cache contents: 0 fonts, 33 dirs
/usr/share/fonts/adobe-source-code-pro: caching, new cache contents: 14 fonts, 0 dirs
/usr/share/fonts/cantarell: caching, new cache contents: 11 fonts, 0 dirs
/usr/share/fonts/dejavu-sans-fonts: caching, new cache contents: 9 fonts, 0 dirs
/usr/share/fonts/dejavu-sans-mono-fonts: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/dejavu-serif-fonts: caching, new cache contents: 9 fonts, 0 dirs
/usr/share/fonts/google-droid-sans-fonts: caching, new cache contents: 16 fonts, 0 dirs
/usr/share/fonts/google-noto: caching, new cache contents: 36 fonts, 0 dirs
/usr/share/fonts/google-noto-cjk: caching, new cache contents: 80 fonts, 0 dirs
/usr/share/fonts/google-noto-emoji: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/google-noto-vf: caching, new cache contents: 5 fonts, 0 dirs
/usr/share/fonts/jomolhari-fonts: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/julietaula-montserrat: caching, new cache contents: 18 fonts, 0 dirs
/usr/share/fonts/khmer-os-system-fonts: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/liberation-mono: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/liberation-sans: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/liberation-serif: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/lohit-assamese: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/lohit-bengali: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/lohit-devanagari: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/lohit-gujarati: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/lohit-kannada: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/lohit-odia: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/lohit-tamil: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/lohit-telugu: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/paktype-naskh-basic: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/pt-sans-fonts: caching, new cache contents: 8 fonts, 0 dirs
/usr/share/fonts/sil-abyssinica-fonts: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/sil-nuosu: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/sil-padauk: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/fonts/smc-meera: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/stix-fonts: caching, new cache contents: 5 fonts, 0 dirs
/usr/share/fonts/thai-scalable: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/urw-base35: caching, new cache contents: 69 fonts, 0 dirs
/home/oracle/.fonts: caching, new cache contents: 0 fonts, 1 dirs
/home/oracle/.fonts/IPAexfont00401: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/fonts/adobe-source-code-pro: skipping, looped directory detected
/usr/share/fonts/cantarell: skipping, looped directory detected
/usr/share/fonts/dejavu-sans-fonts: skipping, looped directory detected
/usr/share/fonts/dejavu-sans-mono-fonts: skipping, looped directory detected
/usr/share/fonts/dejavu-serif-fonts: skipping, looped directory detected
/usr/share/fonts/google-droid-sans-fonts: skipping, looped directory detected
/usr/share/fonts/google-noto: skipping, looped directory detected
/usr/share/fonts/google-noto-cjk: skipping, looped directory detected
/usr/share/fonts/google-noto-emoji: skipping, looped directory detected
/usr/share/fonts/google-noto-vf: skipping, looped directory detected
/usr/share/fonts/jomolhari-fonts: skipping, looped directory detected
/usr/share/fonts/julietaula-montserrat: skipping, looped directory detected
/usr/share/fonts/khmer-os-system-fonts: skipping, looped directory detected
/usr/share/fonts/liberation-mono: skipping, looped directory detected
/usr/share/fonts/liberation-sans: skipping, looped directory detected
/usr/share/fonts/liberation-serif: skipping, looped directory detected
/usr/share/fonts/lohit-assamese: skipping, looped directory detected
/usr/share/fonts/lohit-bengali: skipping, looped directory detected
/usr/share/fonts/lohit-devanagari: skipping, looped directory detected
/usr/share/fonts/lohit-gujarati: skipping, looped directory detected
/usr/share/fonts/lohit-kannada: skipping, looped directory detected
/usr/share/fonts/lohit-odia: skipping, looped directory detected
/usr/share/fonts/lohit-tamil: skipping, looped directory detected
/usr/share/fonts/lohit-telugu: skipping, looped directory detected
/usr/share/fonts/paktype-naskh-basic: skipping, looped directory detected
/usr/share/fonts/pt-sans-fonts: skipping, looped directory detected
/usr/share/fonts/sil-abyssinica-fonts: skipping, looped directory detected
/usr/share/fonts/sil-nuosu: skipping, looped directory detected
/usr/share/fonts/sil-padauk: skipping, looped directory detected
/usr/share/fonts/smc-meera: skipping, looped directory detected
/usr/share/fonts/stix-fonts: skipping, looped directory detected
/usr/share/fonts/thai-scalable: skipping, looped directory detected
/usr/share/fonts/urw-base35: skipping, looped directory detected
/home/oracle/.fonts/IPAexfont00401: skipping, looped directory detected
/usr/lib/fontconfig/cache: not cleaning unwritable cache directory
/home/oracle/.cache/fontconfig: cleaning cache directory
/home/oracle/.fontconfig: not cleaning non-existent cache directory
/usr/bin/fc-cache-64: succeeded
```
</details>

### 対応結果
（文字化けは）解消
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/1046a895-77dc-1a28-9895-0f0cbc1c9f89.png)



## 問題２
[INS-08101] 状態'supportedOSCheck'でアクションの実行中に予期せぬエラーが発生しました
　原因 - 使用可能な追加情報はありません。  
　アクション - Oracleサポート・サービスに連絡するか、ソフトウェア・マニュアルを参照してください。
　サマリー  - java.lang.NullPointerException 

### 事象
エラーが発生し、インストーラが停止（※「はい」でも続行不可）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/cd9c06b8-33e4-4599-502f-6af40852a5be.png)


### 原因
ソフトウェアリリース時には Oracle Linux 9 が動作保証OSでは無かったため。

[Oracle Database/client のインストールがエラー：[INS-08101] Unexpected error while executing the action at state:'clientSupportedOSCheck' を伴い失敗する (ドキュメントID 2932289.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=ch9r0rszh_4&id=2932289.1&_afrLoop=525386433118921)


### 対応
以下の通り環境変数を設定(Oracle Linux 7のフリをする？)
```
export CV_ASSUME_DISTID=OL7
```

### 対応結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/1d61cdc0-263d-9fe6-8269-955a42945327.png)




## 問題３：インストール前提条件のチェックエラー


### 事象
```
スワップ・サイズ - これは、十分な合計スワップ領域がシステムで使用可能かどうかをテストする前提条件です。
予想される値
 : 2.4576GB (2576980.0KB)
実際値
 : 2GB (2097148.0KB)
 詳細: 
 - 
```
PRVF-7532 : パッケージ"compat-libcap1"がノード"ol95db19c"にありません  - 原因:  必要なパッケージがインストールされていないか、またはパッケージがカーネル・モジュールの場合、指定したノードにパッケージがロードされていません。  - アクション:  必要なパッケージがインストールされており、使用可能であることを確認してください。 



### 対応
すべて無視　で続行


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/e4448369-96b5-5613-a0b5-a8f77c80eb3f.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/2265e384-c48d-3915-2f35-38a3ace7594f.png)


## 問題４：Makeファイルでライブラリが見つからずインストールエラー
### 事象
インストール中に libpthread_nonshared.aライブラリが見つからずエラー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/c41175a7-84b0-4c58-9789-729d25f6db30.png)



```
Makeファイル'/u01/app/oracle/product/19.3.0/dbhome_1/rdbms/lib/ins_rdbms.mk'のターゲット'libasmclntsh19.ohso libasmperl19.ohso client_sharedlib'を起動中のエラーです。詳細は'/tmp/InstallActions2025-01-16_05-45-25AM/installActions2025-01-16_05-45-25AM.log'を参照してください
```

```:installActions2025-01-16_05-45-25AM.log
情報: 
/usr/lib64/libpthread_nonshared.a
情報: 
 が見つかりません

情報: 
genclntsh: Failed to link libclntshcore.so.19.1

情報: 
make: *** [/u01/app/oracle/product/19.3.0/dbhome_1/rdbms/lib/ins_rdbms.mk:56: client_sharedlib] エラー 1

情報: 作成されたプロセスからの出力を終了します。
情報: ----------------------------------
情報: アクションからスローされた例外: make
```

### 原因

Oracle Linux 9 / Red Hat Enterprise Linux 9 では、pthread ライブラリが glibc に統合されたため。

 - 参考（My Oracle Support）
[OL9/RHEL9でlibpthread_nonshared.aのリンクエラーによりインストールが失敗します (ドキュメントID 3026214.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=uzhyvu7of_102&id=3026214.1&_afrLoop=555028446749269)

### 対応
runInstaller実行時に、 applyRUオプションをつけ、
19.22以上のRUを適用した上でインストール
```
./runInstaller -applyRU <パッチ番号>
```

 - 参考

https://blog.jbs.co.jp/entry/2024/11/14/101133

 - My Oracle Support
[Oracle Database/Client 19c (19.22 またはそれ以降) on OL9 または RHEL9 64-bit (x86-64) インストール要件 (ドキュメントID 3018509.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=555957368551836&id=3018509.1&_adf.ctrl-state=uzhyvu7of_163)

→　[（５）データベース作成](https://qiita.com/jri-oi/items/95d39dd312668e3ae3b2)

:::note
### 構築手順
![7-4_Oracle Database インストール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491580/6d00d935-a868-4ae1-945f-b77902f64d00.png)
1. [仮想マシン（Oracle Linux）作成](https://qiita.com/jri-oi/items/29cc151fb8f98298d044)</font>
    1. 仮想マシン作成
    1. Oracle Linux 9.5インストール<
1. [Oracle Databaseインストール事前準備](https://qiita.com/jri-oi/items/5ab379764a5af5658210)
    1. Oracle Preinstallation RPM実行(Oracleユーザ作成)
    1. ディレクトリ作成
    1. Oracle Database ソフトウェア配置
1. [Opatchインストール](https://qiita.com/jri-oi/items/9069717e478644a78e2d)
    1. RU配置
    1. Opatchインストール
1. [Oracle Database インストール](https://qiita.com/jri-oi/items/90c4ee02573eaedcc5ed)
1. [データベース作成](https://qiita.com/jri-oi/items/95d39dd312668e3ae3b2)
:::