CentOSにOracle12cR2をインストール

#1.環境
インストール時のソフトウェアの選択は「サーバー(GUI使用)」で、アドオンに「開発ツール」を選択。

インストールしたOSのバージョンは以下
■CentOS Linux release 7.5.1804 (Core) 

Oracle社のマニュアルに従ってインストールする
https://www.oracle.com/technetwork/jp/database/enterprise-edition/documentation/sidb12201-inst-linux-x64-ja-v10-3627443-ja.pdf

## １．ファイヤウォールの停止
個人用のインターネットに繋がっていない環境のため、ファイヤウォールを無効にする。

```sh
sudo systemctl stop firewalld
sudo systemctl disable firewalld
```

##２．必要なライブラリのインストール
```sh
sudo yum install -y libaio-devel
sudo yum install -y ksh
sudo yum install -y compat-libcap1
```

まとめて
```sh
sudo yum install -y libaio-devel ksh compat-libcap1
```

##３．カーネルパラメータの設定
/etc/sysctl.conf

```text
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.panic_on_oops = 1
```

```sh
sudo /sbin/sysctl -p
```

##４．ユーザー作成
```sh
sudo groupadd -g 54321 oinstall
sudo groupadd -g 54322 dba
sudo groupadd -g 54323 oper
sudo groupadd -g 54324 backupdba
sudo groupadd -g 54325 dgdba
sudo groupadd -g 54326 kmdba
sudo groupadd -g 54327 racdba
sudo useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba -d /home/oracle oracle
sudo passwd oracle
```

##５．インストールフォルダの準備

```sh
sudo mkdir -p /u01/app/oracle
sudo chown oracle:oinstall /u01/app
sudo chown oracle:oinstall /u01/app/oracle
sudo chmod -R 775 /u01
```

##６．リソース制限の設定
/etc/security/limits.conf

```sh
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
```

##７．インストール


##８．インストール後
###８－１．.bash_profile
```
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export LANG=ja_JP.UTF-8
export NLS_LANG=Japanese_Japan.AL32UTF8

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
```

##９．インストール前・インストール後の文字化け対策
### インストール前
runInstallerに「-jreLoc」オプションにインストールしているJDKのパスを指定する。

```shell
/runInstaller -jreLoc /usr/lib/jvm/jre-1.8.0/
```

### インストール後
dbca,netmgrなどが文字化けする。
それらはjavaアプリを起動するシェルファイルなので、ファイルコピーし、中にある「JRE_DIR」または「JREDIR」を修正する。(修正箇所は1ファイルにつき1か所のみ。)

```text:修正前
JRE_DIR=/u01/app/oracle/product/11.2.0/dbhome_1/jdk/jre
```

```text:修正後
JRE_DIR=/usr/lib/jvm/jre-1.8.0/
```

## 

# 別記：Oracle11gR2
###インストールに必要なパッケージ

```sh
yum install -y libaio.i686 glibc.i686 elfutils-libelf-devel libaio-devel.i686 unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686

yum-config-manager --enable rhel-7-server-optional-rpms
yum install -y compat-libstdc++-33 compat-libstdc++-33.i686

```

pdkshはインストールされていなくても問題ないみたいなので、無視する。

###インストールの86%で「lsn_emagent.mkのターゲットagent nmhsを起動中のエラー」が発生
『$ORACLE_HOME/sysman/lib/ins_emagent.mk』ファイルを以下のように修正する。

```text:修正前
(MK_EMAGENT_NMECTL) 
```

```text:修正後
(MK_EMAGENT_NMECTL) -lnnz11
```

### ODBCドライバのエラー
libodbcinst.so.1が見つからず、ODBCドライバが使えない。

```shell    
[root@localhost app]# ldd /u01/app/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1 
ldd: 警告: 実行パーミッションがありません: `/u01/app/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1'
	linux-vdso.so.1 =>  (0x00007ffef37fd000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f0bf6b04000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f0bf6802000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0bf65e5000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f0bf63cb000)
	libclntsh.so.11.1 => not found
	libodbcinst.so.1 => not found
	libc.so.6 => /lib64/libc.so.6 (0x00007f0bf5ffd000)
	/lib64/ld-linux-x86-64.so.2 (0x0000557743b99000)
```

LD_LIBRARY_PATHの設定の
libodbcinst.so.2を使用するのが正しいのでシンボリックリンクを作成する。

```shell
cd /usr/lib64/
ln -s libodbcinst.so.2 libodbcinst.so.1
```