前提
- Oracle Database(以下、Oracle DB) については OTN ライセンスを使用
- Red Hat Enterprise Linux 7.3 について
- OSインストール時のシステム構成: サーバー(GUI 使用)
- Oracle DB インストール用の zip ファイルが手元にあること
- ここで使用するバージョンは 11g Release 2(11.2.0.1.0)
- Oracle DB 自体のインストールはローカルのデスクトップ環境で GUI を使用して行う
- Xming 等を使用してリモートからインストールすることも可能
パッケージインストール
Red Hat Enterprise Linux 7(x86-64)の場合、次のパッケージ(またはそれ以降のバージョン)がインストールされている必要がある。
※リリース11.2.0.2より前のOracle Database 11gでは、次のリストの(or .i686) と表記しているパッケージについては 32 ビットおよび 64 ビットの両方のパッケージが必要
- binutils-2.23.52.0.1-12.el7.x86_64
- compat-libcap1-1.10-3.el7.x86_64
- compat-libstdc++-33-3.2.3-71.el7.x86_64 (or .i686)
- gcc-4.8.2-3.el7.x86_64
- gcc-c++-4.8.2-3.el7.x86_64
- glibc-2.17-36.el7.x86_64 (or .i686)
- glibc-devel-2.17-36.el7.x86_64 (or .i686)
- ksh
- libaio-0.3.109-9.el7.x86_64 (or .i686)
- libaio-devel-0.3.109-9.el7.x86_64 (or .i686)
- libgcc-4.8.2-3.el7.x86_64 (or .i686)
- libstdc++-4.8.2-3.el7.x86_64 (or .i686)
- libstdc++-devel-4.8.2-3.el7.x86_64 (or .i686)
- libXi-1.7.2-1.el7.x86_64 (or .i686)
- libXtst-1.2.2-1.el7.x86_64 (or .i686)
- make-3.82-19.el7.x86_64
- sysstat-10.1.5-1.el7.x86_64
その他
- unzip ※Orcle DB の zip ファイル解凍で使用
インストールガイドにはないがインストール中のチェックで必要と言われたパッケージ
- elfutils-libelf-devel
- unixODBC
- unixODBC-devel
- pdksh
- 代替パッケージ:ksh, mksh

compat-libstdc++-33 パッケージについて

RHEL 7 では以下のコマンドでリポジトリを追加する必要がある。
subscription-manager repos --enable=rhel-7-server-optional-rpms
まとめて yum でインストール用コマンド
※ 上のリストの 1-17 と unzip をインストールする場合(アーキテクチャ指定なし)
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unzip
※ 32 ビットパッケージをまとめてインストールする場合
yum install -y compat-libstdc++-33.i686 glibc.i686 glibc-devel.i686 libaio.i686 libaio-devel.i686 libgcc.i686 libstdc++.i686 libstdc++-devel.i686 libXi.i686 libXtst.i686
※インストール中のチェックで必要と言われたパッケージをインストールする場合
yum install -y elfutils-libelf-devel unixODBC unixODBC-devel ksh mksh
グループ作成
【Oracle】2.12 必要なオペレーティング・システム・グループおよびユーザーの作成
■Oracle インベントリ・グループの作成
グループ作成コマンド
groupadd oinstall
■ オペレーティング・システム権限のグループの作成
グループ作成コマンド
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 506 asmdba
groupadd -g 505 asmoper
ユーザ設定
【Oracle】2.12.2.7 Oracleソフトウェア所有者ユーザーの作成
ユーザの作成
■ Oracle ソフトウェア所有者ユーザの作成
ユーザ作成コマンド
useradd -u 502 -g oinstall -G dba,asmdba,oper oracle
oracle ユーザのパスワード設定
passwd oracle
※ 例としてパスワードを oracle とした
ユーザーのリソース制限の確認と設定
以下の公式ドキュメントに従い各制限が指定範囲内になっているかを確認する。
【Oracle】2.13 Oracleソフトウェア・インストール・ユーザーのリソース制限の確認
※ 確認は oracle ユーザで行い、設定ファイル limits.conf の編集は root ユーザで行う
確認コマンド
ulimit -Sn
ulimit -Hn
ulimit -Su
ulimit -Hu
ulimit -Ss
ulimit -Hs
ulimit -Sl
ulimit -Hl
/etc/security/limits.conf 設定例(末尾に追記)
#(略)
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 3145728
oracle hard memlock 3145728
# End of file
※ limits.conf の設定変更は oracle ユーザに再ログインすると反映される
カーネルパラメータの設定
以下の公式ドキュメントに従い各パラメータが指定範囲内になっているかを確認する。
【Oracle】2.14 Linuxのカーネル・パラメータの構成
■カーネルパラメータの確認
sysctl -a | grep "パラメータ名"
■ページサイズの確認
getconf PAGE_SIZE
■メモリサイズの確認
grep MemTotal /proc/meminfo
■ページ数の計算
("メモリサイズ[kB]" * 1024) / "ページサイズ[B]"
最小パラメータより小さいものがあった場合は root ユーザで /etc/sysctl.conf に追記して上書きする。例として以下を追記(最小パラメータ)。
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 1932776000 #物理メモリー・サイズ(バイト)の50%以上
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
設定変更を反映させるためにはシステム再起動するか sysctl -p コマンドを実行する。
ディレクトリ作成
【Oracle】2.15 必要なソフトウェア・ディレクトリの識別
【Oracle】2.16 Oracleベース・ディレクトリの識別または作成
Oracle DB で使用するディレクトリを作成する。
※ 以下は root ユーザで実行
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app
※ 以下は oracle ユーザで実行
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
Oracle DB インストール
【Oracle】4 Oracle Databaseのインストール
以下 oracle ユーザで作業する。/tmp 配下に Oracle DB ファイルを格納している前提。
※ 以下で使用するOracle DB ファイル:
・linux.x64_11gR2_database_1of2.zip
・linux.x64_11gR2_database_2of2.zip
/tmp ディレクトリに移動し Oracle DB ファイルを解凍する。
cd /tmp
unzip -q linux.x64_11gR2_database_1of2.zip
unzip -q linux.x64_11gR2_database_2of2.zip
/tmp/database ディレクトリの中にファイルが解凍されます。
$ ls -l /tmp/database/
合計 16
drwxr-xr-x. 12 oracle oinstall 203 8月 17 2009 doc
drwxr-xr-x. 4 oracle oinstall 223 8月 15 2009 install
drwxrwxr-x. 2 oracle oinstall 61 8月 15 2009 response
drwxr-xr-x. 2 oracle oinstall 34 8月 15 2009 rpm
-rwxr-xr-x. 1 oracle oinstall 3226 8月 15 2009 runInstaller
drwxrwxr-x. 2 oracle oinstall 29 8月 15 2009 sshsetup
drwxr-xr-x. 14 oracle oinstall 4096 8月 15 2009 stage
-rw-r--r--. 1 oracle oinstall 5402 8月 18 2009 welcome.html
/tmp/database ディレクトリに移動して以下コマンドを実行。
./runInstaller
GUI が表示されるため以降は GUI で対話的に進めていきます。
以下画面が表示されます。起動を待ちます。
■「セキュリティ・アップデートの構成」画面
- [セキュリティ・アップデートをMy Oracle Support経由で受け取る]のチェックを外して、次へ
以下の画面が表示されますが先へ進む。
■「インストール・オプションの選択」画面
- [データベース・ソフトウェアのみインストール]をチェックして、次へ
■ 「Gridインストール・オプション」画面
- [単一インスタンス・データベースのインストール]をチェックし、次へ
■「製品言語の選択」画面
- 任意の言語を選択して、次へ
- 例として英語と日本語を選択
■「データベース・エディションの選択」画面
- [Enterprise Edition]を選択して、次へ
■「インストール場所の指定」画面
- 以下の通り表示されていることを確認する。異なる場合は修正する。
- Oracleベース:/u01/app/oracle
- ソフトウェアの場所:/u01/app/oracle/product/11.2.0/dbhome_1
■「インベントリの作成」画面
- 以下の通り表示されていることを確認する。異なる場合は修正する。
- インベントリ・ディレクトリ:/u01/app/oraInventory
- oraInventoryグループ名:oinstall
■「権限付きオペレーティング・システム・グループ」画面
- 以下の通り表示されていることを確認する。異なる場合は修正する。
- データベース管理者(OSDBA)グループ:dba
- データベース・オペレータ(OSOPER)グループ:oper
■「前提条件のチェックの実行」画面
チェックが完了するのを待ちます。
- 以下の内容はインストーラのバグと思われるので無視します
- カーネルパラメータの semmni が 0 と言われている(実際には 128 と設定している)
- 以下の項目は無視します
- .i386 パッケージがインストールされていないという表示
- pdksh パッケージがインストールされていないという表示
- 画面右上のチェックボックスをチェックすると失敗になっている項目を無視して先に進むことができる
■「サマリー」画面
- 内容を確認して、インストール(英語表記:Finish)する
■「製品のインストール」画面
インストールが完了するまで待ちます。
■「構成スクリプトの実行」画面
インストールが完了すると以下の画面が表示されるので、root ユーザにログインして記載されているスクリプトを実行する。
スクリプト実行ログ:
# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.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.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
スクリプト実行後、上の画面で OK をクリックする。
■「終了」画面
インストールは完了なのでインストーラ画面を閉じる。
■事後作業
インストール後、oracle ユーザの ~/.bash_profile に以下の内容を追記しておくと良い。oracle ユーザにログイン後に sqlplus や lsnrctl コマンドがすぐ使えるようになります。
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=${ORACLE_BASE}/product/11.2.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
~/.bash_profile は su “ユーザ名” でのユーザ切替時には自動で読み込まれない点に注意。
参考資料
―――――――――――――