【RHEL 7】Oracle Database 11g Release 2 をインストールする手順

インフラサーバ

前提

  • 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 等を使用してリモートからインストールすることも可能

パッケージインストール

【Oracle】2.4.3 パッケージ要件

Red Hat Enterprise Linux 7(x86-64)の場合、次のパッケージ(またはそれ以降のバージョン)がインストールされている必要がある。

※リリース11.2.0.2より前のOracle Database 11gでは、次のリストの(or .i686) と表記しているパッケージについては 32 ビットおよび 64 ビットの両方のパッケージが必要

  1. binutils-2.23.52.0.1-12.el7.x86_64
  2. compat-libcap1-1.10-3.el7.x86_64
  3. compat-libstdc++-33-3.2.3-71.el7.x86_64 (or .i686)
  4. gcc-4.8.2-3.el7.x86_64
  5. gcc-c++-4.8.2-3.el7.x86_64
  6. glibc-2.17-36.el7.x86_64 (or .i686)
  7. glibc-devel-2.17-36.el7.x86_64 (or .i686)
  8. ksh
  9. libaio-0.3.109-9.el7.x86_64 (or .i686)
  10. libaio-devel-0.3.109-9.el7.x86_64 (or .i686)
  11. libgcc-4.8.2-3.el7.x86_64 (or .i686)
  12. libstdc++-4.8.2-3.el7.x86_64 (or .i686)
  13. libstdc++-devel-4.8.2-3.el7.x86_64 (or .i686)
  14. libXi-1.7.2-1.el7.x86_64 (or .i686)
  15. libXtst-1.2.2-1.el7.x86_64 (or .i686)
  16. make-3.82-19.el7.x86_64
  17. sysstat-10.1.5-1.el7.x86_64

その他

  • unzip ※Orcle DB の zip ファイル解凍で使用

インストールガイドにはないがインストール中のチェックで必要と言われたパッケージ

  • elfutils-libelf-devel
  • unixODBC
  • unixODBC-devel
  • pdksh
    • 代替パッケージ:ksh, mksh
Red Hat Enterprise Linux 6 および 7 で必要な pdksh-5.2.14 ファイルがないため Oracle が失敗する - Red Hat Customer Portal
Oracle 11G の現在のバージョンで、依存関係として pdksh がインストールされている必要があります。インストールに失敗し、以下のメッセージが発生します。 This is a prerequisite condition to test whether the package "pdksh-5.2.14" i...

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

compat-libstdc++ パッケージはどこにありますか? - Red Hat Customer Portal
compat-libstdc++ パッケージがリポジトリーにありません。

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 で対話的に進めていきます。

GUI の画面で文字化けが発生する場合があります。その場合は以下ページが参考になります。
【エンジニア成長日記】OUI起動時にターミナルが文字化けする

以下では英語表記でインストールを進めています。

以下画面が表示されます。起動を待ちます。

■「セキュリティ・アップデートの構成」画面

  • [セキュリティ・アップデートを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)する

■「製品のインストール」画面

インストールが完了するまで待ちます。

11.2.0.1 インストーラのバグ
インストール中に以下のようなエラーメッセージが表示される場合があります。

Error in invoking target ‘install’ of makefile
‘/u01/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk’. See
‘/u01/app/oraInventory/logs/installActions2015-04-17_10-00-15PM.log’ for details.

Error in invoking target ‘agent nmhs’ of makefile
‘/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk’. See
‘/u01/app/oraInventory/logs/installActions2015-04-23_01-23-30PM.log’ for details.

これはインストーラのバグなためスクリプトを作成・実行して修正する必要があります。スクリプト内容は以下のページを参照。
https://www.uxora.com/oracle/dba/23-oracle-installation-errors-and-fixes

※上のサイトはメーカ公式サイトではなく個人サイトのようです
※Fix prior install(インストール実行前に修正する方法)と Fix during install(インストール中に修正する方法)がありますが、筆者の環境では Fix during install ではエラーが消えず、Fix prior install を実施するとエラーが消えました
※スクリプト内のパスは実際の環境に合わせて修正する必要があります

■「構成スクリプトの実行」画面

インストールが完了すると以下の画面が表示されるので、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 “ユーザ名” でのユーザ切替時には自動で読み込まれない点に注意。

参考資料

Oracle Databaseインストレーション・ガイド 11gリリース2 (11.2) for Linux
Oracle Database ソフトウェア・ダウンロード | Oracle Technology Network | Oracle 日本
Oracle Database for Oracle Database 12c および Oracle Database 11gのソフトウェア・ダ&#12...
Oracle 11g R2のCentOS 6.5へのインストール | setup | OSS Fan
OSSを利用してサーバを構築するための情報を公開しています。

―――――――――――――

タイトルとURLをコピーしました