DHJJ DHJJ [Hatsune's Journal Japan]

Oracle Enterprise Linux Release 5にOracle Database 11g Release 1を導入する

Microsoft Virtual PC 2007のバーチャルマシンで動かしたOracle Enterprise Linux Release 5にOracle Database 11g Release 1(OTN Software kit版)をインストールしてみました。

なお、あくまでも動かすだけが目的ですので、ディスク構成や各種パラメタは実運用を考慮していませんので、実運用環境を作成するときには必ず開発システムの要件を踏まえて設定を検討してから作業を開始してください。

ハードウェア要件の確認

物理RAMのサイズ
grep MemTotal /proc/meminfo
構成済スワップ領域のサイズ
grep SwapTotal /proc/meminfo
使用可能な物理RAMと構成済スワップ領域のサイズ
free
使用可能な共有メモリ容量
df -k /dev/shm
/tmpディレクトリのディスク量(150~200MBが必要)
df -k /tmp
[root@ora11g ~]# grep MemTotal /proc/meminfo
MemTotal:       515604 kB

[root@ora11g ~]# grep SwapTotal /proc/meminfo
SwapTotal:     1048568 kB

[root@ora11g ~]# free
             total       used       free     shared    buffers      cached
Mem:        515604     480248      35356          0      30856      324912
-/+ buffers/cache:     123380     391124
Swap:      1048568          0    1048568

[root@ora11g ~]# df -k /dev/shm
Filesystem           1K-ブロック    使用    使用可 使用% マウント位置
tmpfs                   257800         0     257800   0% /dev/shm

[root@ora11g ~]# df -k /tmp
Filesystem           1K-ブロック    使用    使用可 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
                      15109112   2512092   11817144  18% /

ソフトウェア要件の確認

オペレーティング・システムの要件
cat/proc/version
カーネル要件
uname -r
[root@ora11g ~]# cat /proc/version
Linux version 2.6.18-8.e15 (mockbuild@ca-build14) (gcc version 4.1.1 20070105 (R
ed Hat 4.1.1-52)) #1 SMP Tue Jun 5 23:11:13 EDT 2007

[root@ora11g ~]# uname -r
2.6.18-8.e15
パッケージ要件

デフォルトインストールのパッケージ状態でほぼ必要なパッケージがインストールされますが、いくつかのパッケージは追加インストールが必要です。Oracle Database 11g Release 1に必要なパッケージには次のようなものがあります(Oracle Enterprise Linux Release 5の場合)。

binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
gcc-4.1.1-52
gcc-c++-4.1.1-52
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11

パッケージがインストールされているかどうかを確認するには次のコマンドを使います。

[root@ora11g ~]rpm -q compat-libstdc++
パッケージ compat-libstdc++ はインストールされていません。

不足しているパッケージはDVDのServersフォルダにあるので次のコマンドを使って個別にインストールしていきます。

[root@ora11g ~]rpm -i compat-libstdc++-33-3.2.3-61.i386.rpm

rpm -iでインストール時に「依存性の欠如」の表示がでたときは、そこに表示されているパッケージを同時に指定する。

[root@ora11g ~]rpm -i gcc-c++-4.1.1-52.el5.i386.rpm libstdc++-devel-4.1.1-5
2.el5.i386.rpm

OSグループとユーザの作成

[root@ora11g ~]# /usr/sbin/groupadd oinstall
[root@ora11g ~]# /usr/sbin/groupadd dba
[root@ora11g ~]# /usr/sbin/useradd -g oinstall -G dba oracle
[root@ora11g ~]# passwd oracle
Changing password for user oracle.
New UNIX password:
passwd: all authentication tokens updated successfully.
[root@ora11g ~]# /usr/sbin/useradd nobody
useradd: ユーザ nobody は存在します

カーネル・パラメータの構成

Oracle Databaseをインストールするためにはカーネル・パラメータをある値以上に設定する事が推奨されています。

パラメータ推奨値
semmsl250
semmns32000
semopm100
semmni128
shmall2097152
shmmax物理メモリの半分 or 4GBの最小値
shmmni4096
file-max512 x PROCESSES
ip_local_port_range1024~65000
rmem_default4194304
rmem_max4194304
wmem_default262144
wmem_max262144

それでは、Oracle Enterprise Linux Release 5のデフォルトインストール時のカーネルパラメータを確認してみましょう。

[root@ora11g ~]# /sbin/sysctl -a | grep sem
kernel.sem = 250        32000   32      128

[root@ora11g ~]# /sbin/sysctl -a | grep shm
vm.hugetlb_shm_group = 0
kernel.shmmni = 4096
kernel.shmall = 268435456
kernel.shmmax = 4294967295

[root@ora11g ~]# /sbin/sysctl -a | grep file-max
fs.file-max = 50756

[root@ora11g ~]# /sbin/sysctl -a | grep ip_local_port_range
net.ipv4.ip_local_port_range = 32768    61000

[root@ora11g ~]# /sbin/sysctl -a | grep rmem_default
net.core.rmem_default = 109568

[root@ora11g ~]# /sbin/sysctl -a | grep rmem_max
net.core.rmem_max = 109568

[root@ora11g ~]# /sbin/sysctl -a | grep wmem_default
net.core.wmem_default = 109568

[root@ora11g ~]# /sbin/sysctl -a | grep wmem_max
net.core.wmem_max = 109568

推奨値以上についてはそのままの値を使い、以下の値については最低でも推奨値に変更します。変更する設定ファイルは/etc/sysctl.confファイルのみですので、設定作業自体は単純です。

kernel.shmall = 384000000
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

/etc/sysctl.confファイルの変更が完了したら次のコマンドを入力して値を反映します。

/sbin/sysctl -p
oracleユーザーのシェル制限の設定

OracleユーザはOracle Databaseを実行するユーザアカウントなのでシェル制限をデフォルト値から変更して制限にかからないようにします。詳しくはLinux版のインスタレーションガイドを参照してください。

/etc/security/limits.confファイルへの追加

oracle           soft    nproc   2047
oracle           hard    nproc   16384
oracle           soft    nofile  1024
oracle           hard    nofile  65536

/etc/pam.d/loginファイルへの追加

session    required     /lib/security/pam_limits.so
session    required     pam_limits.so

/etc/profileファイルへの追加

if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi

インストールディレクトリの作成

[root@ora11g ~]# mkdir -p /u01/app/
[root@ora11g ~]# chown -R oracle:oinstall /u01/app/
[root@ora11g ~]# chmod -R 775 /u01/app/

oracleユーザの環境構成

ここでrootユーザをログアウトしてoracleユーザでログインします。

環境設定ファイルの編集

シェルごとの環境設定ファイルにumaskと環境変数を設定するために、oracleユーザのシェルを確認します。

[oracle@ora11g ~]$ echo $SHELL
/bin/bash

bashの環境設定ファイルは.bash_profileファイルですから、このファイルの最後に次の内容を設定します。

umask 022
export ORACLE_BASE=/u01/app/oracle

編集が完了したら次のコマンドにより現在の環境を変更します。

[oracle@ora11g ~]$ . ./.bash_profile
[oracle@ora11g ~]$ umask
0022

Oracle Databaseソフトウェアのインストール

Oracle Databaseソフトウェアをインストールするときには、環境変数ORACLE_BASEを設定し、環境変数ORACLE_SID、ORACLE_HOMEおよびTNS_ADMINが解除されている必要があります。

[oracle@ora11g ~]$ env | grep ORACLE
ORACLE_BASE=/u01/app/oracle

ORACLE_BASE以外が表示されたらunsetコマンドで環境変数を解除します。

OUIの起動

DVDを/media/dvdにマウントしているとすると次のコマンドでOUI(Oracle Universal Installer)が起動します。

[oracle@ora11g ~]$ /media/dvd/runInstaller
Oracle Univeral Installerを起動中です...

一時領域の確認中: 80 MBを超えている必要があります.   実際11489MB    問題なし
スワップ領域の確認中: 150 MBを超えている必要があります.   実際1023 MB   問題なし
モニターの確認中: 少なくとも256色表示するよう設定されている必要があります.    実
際16777216    問題なし
Oracle Universal Installerの起動を準備中 /tmp/OraInstall2008-0101 07-42-09AM.
お待ちください...

OUI

インストール方法の選択

インストール方法の選択

今回は拡張インストールを選択して細かく設定を行っていきますが、とりあえず動かすならば基本インストールを選択しても良いでしょう。また、Standard Edition Oneを選択するには基本インストールでのみ選択できます。ただし、その場合でもインストールとデータベースの作成を連続して行うと時間がかかるので、[初期データベースの作成]チェックボックスのチェックは外してOracle Databaseソフトウェアのインストールとデータベースの作成は別々の作業として行う方が良いでしょう。

インベトリ・ディレクトリと資格証明の指定

インベトリ・ディレクトリと資格証明の指定

インストール・タイプの選択

インストール・タイプの選択

Enterprise Editionは確かに強力なコンポーネント群がそろっていますし運用オプションも充実しています。しかし、大抵の要件ではStandard Editionの機能でも充分な場合が多いでしょう。日本の開発現場では「とりあえず一番いいもの」を選びすぎる傾向にありますが、もし、Enterprise Editionを購入しているのに他の有料オプションを購入していないで利用しているのならば、Standard Editionで充分だったのかも知れないのです。それはStandard EditionとEnterprise Editionの両方に存在する機能では両者に処理速度の違いなどは存在しないからです。

インストールの場所

インストールの場所

製品固有の前提条件のチェック

前提条件のチェック

バーチャルマシンのRAM容量が512MBのため、1GBという前提条件をクリアしていないため警告されますが、その他のチェックが通っているならば[次へ]ボタンをクリックして、さらに警告ダイアログについても[はい]をクリックして無視します。

構成オプションの選択

構成オプションの選択

データベースはあとで別に作業としてインストールしますので、[ソフトウェアのみインストール]オプションを選択します。

権限付きOSグループ

権限付きOSグループ

サマリー

サマリー

サマリーでインストール前の最終確認(と覚悟)が完了したら[インストール]ボタンをクリックします。

構成スクリプトの実行

構成スクリプトの実行

インストールの最終ステップは、rootユーザによるスクリプト実行です。

rootユーザでスクリプトを実行するためには、まずは、デスクトップで右クリックによりポップアップメニューを表示して[端末を開く]メニューをクリックして現在実行中の端末ウィンドウとは別のウィンドウを開きます。

この端末ウィンドウは現在ログインしているoracleユーザとして実行していますので、次にsuコマンドによりrootユーザに切り替えます。

[oracle@ora11g ~]$ su
パスワード:
[root@ora11g oracle]# /u01/app/oraInventory/orainstRoot.sh
[root@ora11g oracle]# /u01/app/oracle/product/11.1.0/db_1/root.sh

インストールの終了

インストール後の環境設定

.bash_profileファイルに次の環境設定を追記します。

export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
export ORA_NLS10=$ORACLE_HOME/nls/data
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=.:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=JAPANESE_JAPAN.UTF8

環境変数NLS_LANGはOSの文字コードに合わせます。Oracle Enterprise Linux Release 5のデフォルト文字コードはUTF8なので「JAPANESE_JAPAN.UTF8」を指定します。

なお、環境変数NLS_LANGとデータベースを作成したときのデータベースキャラクタセットは必ずしも一致する必要はありません。両者が違うときは自動的に文字コード変換が行われるので、あわせられるのであれば合わせるのも良いでしょう。

COPYRIGHT (C) 2008 初音玲 All rights reserved. / Running .NET Framework 4.0.30319.42000