Oracle Linux 8.6にOracle19cをインストールする　2/2　インストール編

# はじめに
[こちら](https://qiita.com/t_skri/items/b2ff7f71e10b54e1d3e0)からの続きになります。
実際にoracle19cをインストールしていきます。

# Oracle Preinstall rpm のインストール
```
-- 存在確認
# yum list |grep preinstall-19c.x86_64
oracle-database-preinstall-19c.x86_64                  1.0-2.el8                                             ol8_appstream
-- インストール
# yum install oracle-database-preinstall-19c.x86_64

--　省略
インストール済み:
  glibc-devel-2.28-164.0.3.el8.x86_64                ksh-20120801-254.0.1.el8.x86_64       libaio-devel-0.3.112-1.el8.x86_64                         libnsl-2.28-164.0.3.el8.x86_64
  libstdc++-devel-8.5.0-4.0.2.el8_5.x86_64           libxcrypt-devel-4.1.1-6.el8.x86_64    lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64    make-1:4.2.1-10.el8.x86_64
  oracle-database-preinstall-19c-1.0-2.el8.x86_64    sysstat-11.7.3-6.0.1.el8.x86_64
完了しました!
```

# oracleユーザのパスワード変更
```
# passwd oracle
ユーザー oracle のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
```

# インストールフォルダを作成する
```
# mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
```

# 「LINUX.X64_193000_db_home.zip」を解凍する
```
# cd /u01/app/oracle/product/19.3.0/dbhome_1
# unzip /tmp/LINUX.X64_193000_db_home.zip
# chown -R oracle:oinstall /u01/app
```

# oracleユーザーでログイン
ここからrootではなく、oracleユーザーで行っていきます。
su - oracleではなく、新たにTera Termを開いてください。

# IPAフォントのインストール
oracleユーザのカレントフォルダへ移動し以下作業を行います。
```
$ cd
$ pwd
/home/oracle
$ mkdir ~/.fonts
$ cd .fonts/
$ cp /tmp/IPAexfont00401.zip .
$ unzip IPAexfont00401.zip
Archive:  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

$ fc-cache -fv
/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
```

# OUI（Oracle Universal Installer）の実行
javaのバージョンはご自分の環境に合わせてください。

```
$ cd /u01/app/oracle/product/19.3.0/dbhome_1
$ export LANG=ja_JP.utf8
$ export CV_ASSUME_DISTID=OL7
$ sh ./runInstaller -jreLoc /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el8_6.x86_64/jre
```
GUIが立ち上がるます。
スクリーンショットが多いのでページを分けました。
手順は[こちら](https://qiita.com/t_skri/items/a3f5ae3f5bfe54c92abe)になります。

# データベースの作成
dbca(Oracle Database Configuration Assistant)を使用してデータベースを作成します。
```
$ cd /u01/app/oracle/product/19.3.0/dbhome_1/bin
$ ./dbca
```
GUIが立ち上がるます。
スクリーンショットが多いのでページを分けました。
手順は[こちら](https://qiita.com/t_skri/items/2c68b8eb4debb63d5af3)になります。

# 環境変数設定
```
-- ルートディレクトリに戻る
$ cd
-- 編集
$ vi .bash_profile
-- # User specific environment and startup programsのしたに以下を追加
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG=Japanese_Japan.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH

-- 確認
$ cat .bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG=Japanese_Japan.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH
```

# 自動起動設定
rootユーザーで設定します。
su -で切り替えても良い

#### oratabファイルの設定変更
ORCLCDB:/opt/oracle/product/19c/dbhome_1:N
↓
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
に変更
```:/etc/oratab
# vi /etc/oratab
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y ←ここを変更
```

#### 環境変数を設定するファイルを作成
```:/etc/sysconfig/env.oracledb
# vi /etc/sysconfig/env.oracledb

-- こちらを記述する。
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
ORACLE_SID=orcl
NLS_LANG=Japanese_Japan.AL32UTF8
```

# systemdユニットファイル作成
Oracle Databaseのインスタンスを起動するためのsystemdユニットファイルを作成
```:/etc/systemd/system/oracledb.service
# vi /etc/systemd/system/oracledb.service

-- こちらを記述する。
[Unit]
Description=Oracle Databaes Service
After=network.target oraclelsnr.service
[Service]
Type=forking
RemainAfterExit=yes
TimeoutStopSec=5min
EnvironmentFile=/etc/sysconfig/env.oracledb
ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbstart /u01/app/oracle/product/19.3.0/dbhome_1
ExecStop=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbshut /u01/app/oracle/product/19.3.0/dbhome_1
Restart=no
User=oracle
Group=oinstall
KillMode=none
[Install]
WantedBy=multi-user.target
```

#### 作成したユニットファイルの反映
```
# systemctl daemon-reload
```

#### サービスの有効化
```
# systemctl enable oracledb
Created symlink from /etc/systemd/system/multi-user.target.wants/oracledb.service to /etc/systemd/system/oracledb.service.
```

#### サーバー再起動
```
# reboot
```

#### 再起動後のサービスのステータス確認
```
# systemctl -l status oracledb
● oracledb.service - Oracle Databaes Service
   Loaded: loaded (/etc/systemd/system/oracledb.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-10-18 08:45:13 JST; 3h 7min ago
  Process: 1060 ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbstart /u01/app/oracle/product/19.3.0/dbhome_1 (>
    Tasks: 87 (limit: 48686)
   Memory: 3.3G
   CGroup: /system.slice/oracledb.service
           tq1097 /u01/app/oracle/product/19.3.0/dbhome_1/bin/tnslsnr LISTENER -inherit
           tq2314 ora_pmon_orcl
           tq2316 ora_clmn_orcl
           tq2318 ora_psp0_orcl
           tq2320 ora_vktm_orcl
           tq2324 ora_gen0_orcl
           tq2326 ora_mman_orcl
           tq2330 ora_gen1_orcl
           tq2333 ora_diag_orcl
           tq2335 ora_ofsd_orcl
           tq2338 ora_dbrm_orcl
           tq2340 ora_vkrm_orcl
           tq2342 ora_svcb_orcl
           tq2344 ora_pman_orcl
           tq2346 ora_dia0_orcl
           tq2348 ora_dbw0_orcl
```
上手く起動していない際は、アクセス権限やSELinuxを確認して下さい。
筆者はSELinuxを有効にしていて、はまりました。

# まとめ
以上で、インストールは終了です。
外部PCからアクセス出来るか、確認して下さい。