Oracle Database 19c インストールしてみた

## はじめに
oracleをインストールしたことがなかったので、インストールした際の記録を残しておきます。
※あくまで試しに入れてみたものなので、こちらをもとにインストールされる場合は、適宜、読み替えて実施してください。

## 前提
・CentOS7(GNOME Desktop)がインストールされていること

## Oracle Database 19c インストール
### Oracle Database 19cのダウンロード
下記ページからインストーラのzipファイルをダウンロードする。
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

### グループ作成
以下のコマンドでグループを作成する。

```
# groupadd oinstall
# groupadd dba
# groupadd oper
# groupadd backupdba
# groupadd dgdba
# groupadd kmdba
```

### ユーザ作成
以下のコマンドでユーザ(oracle)を作成する。

```
# useradd -g oinstall -G dba,oper,backupdba,dgdba,kmdba oracle
# passwd oracle
```

### インストール先ディレクトリ作成
以下のコマンドでインストール先のディレクトリを作成する。

```
# mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
# chown -R oracle:oinstall /u01/app
# chmod -R 775 /u01
```

### パッケージインストール
以下のコマンドでインストールに必要なパッケージをインストールする。

```
# yum -y install compat-libcap1.x86_64 libaio-devel.x86_64 compat-libstdc++-33.x86_64 ksh
```

### インストーラー起動
上記1でダウンロードしたzipファイルを「/u01/app/oracle/product/19.3.0/dbhome_1」へ配置し、以下のコマンドを実行する。コマンド（runInstaller）が正常に実行されると、インストーラの画面が起動する。

```
# su - oracle
$ cd /u01/app/oracle/product/19.3.0/dbhome_1
$ unzip LINUX.X64_193000_db_home.zip
$ ./runInstaller -jreLoc /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre
```

※インストールする際のjavaのパスを以下のコマンドで確認

```
$ readlink -f `which java`
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/bin/java
```

### Oracle Database 19c インストール
#### 構成オプション
単一インスタンス・データベースを作成および構成します：オン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/a87bd259-3887-a238-fb25-3441230868e8.png)

#### データベース・インストール・オプション
サーバー・クラス：オン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/012834da-e9b9-90c2-80a6-7fe0b43d3e0f.png)

#### データベース・エディションの選択
Enterprise Edition：オン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/49a5b31e-fc64-73c4-abb2-0259396000bd.png)

#### インストール場所の指定
Oracle ベース：/u01/app/oracle
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/40f56e81-dead-0581-19ab-1d07f22d59c2.png)

#### インベントリの作成
インベントリ・ディレクトリ：/u01/app/oraInventory
oraInventoryグループ名：oinstall
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/ed45c180-858a-412e-c96d-b3ae302e4a1b.png)

#### 構成タイプの選択
汎用目的/トランザクション処理：オン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/713619c6-0fea-b4b0-13df-56726a03f360.png)

#### データベース識別子の指定
グローバル・データベース：orcl
Oracleシステム識別子：orcl
コンテナ：データベースとして作成：オン
プラガブル・データベース名：orclpdb
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/2121f612-2199-20c0-a881-a844c1d23fd9.png)

#### 構成オプションの指定
「メモリー」タブ
自動メモリー管理有効：オン
メモリーの割当て：1516(MB)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/03f78940-c841-bf27-d9a1-ed235c6c7dfc.png)

「キャラクタ・セット」タブ
Unicode(AL32UTF8)を使用：オン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/f425aed8-72c5-113a-134c-150644cfca66.png)

「サンプル・スキーマ」タブ
データベースにサンプル・スキーマをインストール：オン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/3bdfbff4-99db-e20e-d24b-29b1f8dd8795.png)

#### データベース記憶域オプションの指定
ファイル・システム：オン
データベース・ファイルの位置の指定：/u01/app/oracle/oradata
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/882097f8-dad4-971f-2106-decbee8bee96.png)

#### 管理オプションの指定
Enterprise Manager(EM) Cloud Controlへの登録：オフ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/6c523963-426b-c5d7-e293-e08d2f52fb02.png)

#### リカバリ・オプションの指定
リカバリの有効化：オン
ファイル・システム：オン
リカバリ領域の場所：/u01/app/oracle/recovery_area
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/a3b3ae8a-e83b-1dcd-d077-e13d44dde3b6.png)

#### スキーマ・パスワードの指定
すべてのアカウントに同じパスワードを使用：オン
パスワード：********
パスワードの確認：********
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/a89af9bc-3a6e-fc89-1160-3070623116ff.png)

#### 権限のあるオペレーティング・システム・グループ
データベース管理者(OSDBA)グループ：dba
データベース・オペレータ(OSOPER)グループ(オプション)：oper
データベースのバックアップおよびリカバリ(OSBACKUPDBA)グループ：backupdba
Data Guard管理(OSDGDBA)グループ：dgdba
暗号化鍵管理(OSKMDBA)グループ：kmdba
Real Application Cluster管理(OSRACDBA)グループ：dba
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/43928fad-5d42-8a08-e06e-2ff83ce5e114.png)

#### rootスクリプトの実行構成
構成スクリプトを自動的に実行：オフ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/ff7817ba-da6d-dc09-62d9-6680eba49927.png)

#### 前提条件チェックの実行
以下のように「OSカーネル・パラメータ」部分で対象が存在する場合は、「修正および再チェック」をクリックし、表示されたダイアログの手順に沿って修正する。「パッケージ」部分は各々のパッケージをインストールして修正する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/efc7939e-6458-1804-073b-9123c9c9310b.png)

#### サマリー
「インストール」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/41777742-8d53-605e-208f-252131f6ba8d.png)

#### 製品のインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/b19672c1-71cf-29f1-a1e5-c445c436a6fe.png)

インストール中、以下のようなダイアログが表示された場合、表示されているスクリプトをrootユーザで実行し、「OK」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/f42f0e5c-c22c-10a6-626a-b2a42753bcbb.png)

スクリプト実行

```
# /u01/app/oraInventory/orainstRoot.sh
権限を変更中 /u01/app/oraInventory.
グループの読取り/書込み権限を追加中。
全ユーザーの読取り/書込み/実行権限を削除中。

グループ名の変更 /u01/app/oraInventory 宛先 oinstall.
スクリプトの実行が完了しました。
# /u01/app/oracle/product/19.3.0/dbhome_1/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/19.3.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Oracle Trace File Analyzer (TFA - Standalone Mode) is available at :
    /u01/app/oracle/product/19.3.0/dbhome_1/bin/tfactl

Note :
1. tfactl will use TFA Service if that service is running and user has been granted access
2. tfactl will configure TFA Standalone Mode only if user has no access to TFA Service or TFA is not installed
```

#### 終了
「閉じる」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481749/3b38d7aa-ffae-8173-a44f-ada591dac42e.png)

### oracleユーザ設定
oracleユーザの.bash_profileに環境変数を追加。

```
$ vim .bash_profile
# .bash_profile

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

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
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
```

以下のコマンドで設定を再読み込みする。
```
$ source .bash_profile
```

## データベース接続確認
以下のコマンドを実行する。

```
$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 木 9月 23 21:07:40 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
orcl             OPEN

SQL>
```