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をインストールするためにはカーネル・パラメータをある値以上に設定する事が推奨されています。
| パラメータ | 推奨値 |
| semmsl | 250 |
| semmns | 32000 |
| semopm | 100 |
| semmni | 128 |
| shmall | 2097152 |
| shmmax | 物理メモリの半分 or 4GBの最小値 |
| shmmni | 4096 |
| file-max | 512 x PROCESSES |
| ip_local_port_range | 1024~65000 |
| rmem_default | 4194304 |
| rmem_max | 4194304 |
| wmem_default | 262144 |
| wmem_max | 262144 |
それでは、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ファイルの変更が完了したら次のコマンドを入力して値を反映します。
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.
お待ちください...
インストール方法の選択
今回は拡張インストールを選択して細かく設定を行っていきますが、とりあえず動かすならば基本インストールを選択しても良いでしょう。また、Standard Edition Oneを選択するには基本インストールでのみ選択できます。ただし、その場合でもインストールとデータベースの作成を連続して行うと時間がかかるので、[初期データベースの作成]チェックボックスのチェックは外してOracle Databaseソフトウェアのインストールとデータベースの作成は別々の作業として行う方が良いでしょう。
インベトリ・ディレクトリと資格証明の指定
インストール・タイプの選択
Enterprise Editionは確かに強力なコンポーネント群がそろっていますし運用オプションも充実しています。しかし、大抵の要件ではStandard Editionの機能でも充分な場合が多いでしょう。日本の開発現場では「とりあえず一番いいもの」を選びすぎる傾向にありますが、もし、Enterprise Editionを購入しているのに他の有料オプションを購入していないで利用しているのならば、Standard Editionで充分だったのかも知れないのです。それはStandard EditionとEnterprise Editionの両方に存在する機能では両者に処理速度の違いなどは存在しないからです。
インストールの場所
製品固有の前提条件のチェック
バーチャルマシンのRAM容量が512MBのため、1GBという前提条件をクリアしていないため警告されますが、その他のチェックが通っているならば[次へ]ボタンをクリックして、さらに警告ダイアログについても[はい]をクリックして無視します。
構成オプションの選択
データベースはあとで別に作業としてインストールしますので、[ソフトウェアのみインストール]オプションを選択します。
権限付き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
環境変数NLS_LANGはOSの文字コードに合わせます。Oracle Enterprise Linux Release 5のデフォルト文字コードはUTF8なので「JAPANESE_JAPAN.UTF8」を指定します。
なお、環境変数NLS_LANGとデータベースを作成したときのデータベースキャラクタセットは必ずしも一致する必要はありません。両者が違うときは自動的に文字コード変換が行われるので、あわせられるのであれば合わせるのも良いでしょう。