先日、U.S OTN(Oracle Technology Network)でOracle Database 11gが公開されましたが
11gはAsianux3もサポートしているのでインストールしてみることにしました。
Oracle Database Installation Guide 11g Release 1 (11.1) for Linux
Asianuxにはミラクルリナックスが開発したORANAVIというOracle Databaseのインストールに必要な設定を
自動的に行ってくれるツールがついてるのですが

現在Asianux Server 3に入っているORANAVIは10gR2に対応したものらしく11gのインストーラを指定すると
「このバージョンはサポートしてませんぜ」ってな感じのメッセージが表示されるので
今回はORANAVIを使用せずに通常の手順でインストールしてみました。
※追記:2007/12/11付けでOralce 11gをインストールできるOranaviがリリースされていました。
https://tsn.miraclelinux.com/tsn_local/index.php?m=errata&a=detail&eid=59&sType=&sProduct =
【手順】
1. rootでログイン
2. 必要なパッケージの確認
Oracle Database 11gのインストールには以下のパッケージが必要です。
(RHEL5およびAsianux3の場合)
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
「rpm -q パッケージ名」でインストールされているか確認します。
Asianux Server 3のインストール 時にパッケージの選択で「すべて」を選択した場合は全てインストールされて
います。
3. 必要なユーザー、グループの追加
Oracle Databaseをインストールするには以下のユーザーとグループが必要です。
・Oracleインベントリグループ(oinstall)
・データベース管理者用グループ(dba)
・Oracleソフトウェア所有者(oracle)
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
4. カーネルパラメータの調整
Oracle Database 11gでのカーネルパラメータの要件は以下のようになっています。
パラメータ | 説明 | 設定値 | ファイル |
semmsl | セマフォ集合ごとのセマフォ最大数 | 250 | /proc/sys/kernel/sem |
semmns | システム全体のセマフォ最大数 | 32000 | |
semopm | セマフォ集合の変数関数呼び出しごとの最大命令数 | 100 | |
semmni | システム全体のセマフォ集合最大数 | 128 | |
shmall | システム全体の共有メモリの最大サイズ | 2097152 | /proc/sys/kernel/shmall |
shmmax | 共有メモリセグメント1つあたりの最大サイズ この値によりSGAの最大サイズが決まります |
以下のどちらか小さい方 ・物理メモリの半分 ・4GB-1byte |
/proc/sys/kernel/shmmax |
shmmni | 1プロセスごとの共有メモリセグメントの数の上限値 | 4096 | /proc/sys/kernel/shmmni |
file-max | ファイルハンドルの最大数 | 512 * PROCESSES | /proc/sys/fs/file-max |
ip_local_port_range | 使用できるポートの範囲 | 最小値1024 最大値65000 | /proc/sys/net/ipv4/ip_local_port_range |
rmem_default | 受信バッファのデフォルト値 | 4194304 | /proc/sys/net/core/rmem_default |
rmem_max | 受信バッファの最大値 | 4194304 | /proc/sys/net/core/rmem_max |
wmem_default | 送信バッファのデフォルト値 | 262144 | /proc/sys/net/core/wmem_default |
wmem_max | 送信バッファの最大値 | 262144 | /proc/sys/net/core/wmem_max |
上記で赤字にした値が10gR2から変更されているものになります。
file-maxは10gでは65536固定でしたが11gでは512×プロセス数になっています。
プロセス数は下のインストール手順の27で設定していますがデフォルトでは150になっていて
デフォルトのままの場合はfile-maxは512×150=76800になります。
Asianux Server 3では最初からカーネルパラメータがOracleの推奨値にあわせるように/etc/sysctl.confに
設定されているのですが、現時点では10gR2にあわせているようなので、赤字の値のみ書き換えて
# sysctl -p
を実行して反映します。
2007/10/30付けでミラクルリナックスのサイトにAsianux Server 3にOracle11gをインストールする手順が
公開されていましたのでパラメータ設定の詳細はそちらを参照して下さい。
ミラクルリナックス:Oracle Database 11g Release 1 (11.1)のインストール方法 (Asianux Server 3)
5. シェル制限の設定
・/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 [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
6. インストールディレクトリの作成
今回はOracleのインストール先を/u01/app/oracleにします。
このディレクトリを作成しoracleユーザーを所有者とします。
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01
# chmod -R 775 /u01
7. 一度ログオフし、oracleユーザーでログインし直します。
8. Oracle Database 11gのインストーラーのrunInstallerスクリプトを実行します。
すると以下の様にOracle Universal Installerが起動します。
今回は「拡張インストール」を選択します。
9. インベントリディレクトリの指定を行います。
今回はデフォルトの「/u01/app/oraInventory」とします。
10. インストールタイプの選択
今回は最上位の「Enterprise Edition」をインストールしてみます。
11.ORACLE_BASEとORACLE_HOMEの場所を指定します。
12. 前提条件のチェックが行われます。
理由は分かりませんがUniversal InstallerがAsianuxのバージョンを確認できないようで「asianux-n/a」と
表示され警告が表示されます。
もちろんAsianux3はOracle11gによりきちんとサポートされるOSですのでおかまいなしに次へ進みます。
13. 構成オプションの指定で「データベースの作成」を選択します。
14. データベース構成の選択で「詳細」を選択します。
15. 権限付きオペレーション・システム・グループの選択。
デフォルトのまま次へ進みます。
16. Oracle Configuration Manager登録
今回は設定を行いません。
17. 以上でOracle11gのインストールが開始されます。
18. Oracle11gのインストール完了後はデータベースの作成を実施します。
今回は「カスタム・データベース」を選択します。
19. グローバルデータベース名とSIDを入力します。
本来は適切なデータベース名を設定するのですが今回はデフォルトのまま進みます。
20. Enterprise Managerの構成を行います。
エラー発生時にメール通知を行いたい場合やリカバリー領域に日次バックアップを行いたい場合は
ここで設定することができます。
21. SYS、SYSTEM、DBSNMP、SYSMANのパスワードを設定します。
22. データベースの記憶域を指定します。
今回は「ファイルシステム」を選択します。
23. データベースの作成先を指定します。
24. フラッシュ・リカバリー領域とアーカイブログの設定を行います。
25. 使用するデータベースコンポーネントを指定します。
26. システムグローバル領域(SGA)、プログラムグローバル領域(PGA)に割り当てるメモリ容量を設定します。
自動メモリ管理に設定することも可能です。
27. ブロックサイズと同時接続可能な接続数を設定します。
28. データベースのキャラクタセットを選択します。
OSのキャラクタセットがUTF-8なので、データベースのキャラクタセットもそれにあわせておきます。
29. 接続モードの選択ですが通常は専用サーバーモードにします。
30. デフォルトの高度セキュリティ設定を指定します。
31. 自動メンテナンスタスクの有効・無効を設定します。
11gから導入された機能なので有効にした場合にシステムにどれくらい負荷を与えるのかといった情報が
まだないので有効にしてもいいのか判断が難しいところです。
32. 表領域、データファイル、REDOログファイルを確認します。
33. データベース作成スクリプトを残したい場合は[データベース作成スクリプトの作成]を選択します。
上記の画面で[完了]をクリックするとデータベースの作成が開始されます。
データベースの作成が完了すると次のメッセージが表示されます。
34. 画面の指示に従い構成スクリプトを実行します。
$ su - root
パスワード:
# /u01/app/oraInventory/orainstRoot.sh
権限の変更:/u01/app/oraInventory : 770.
グループ名の変更:/u01/app/oraInventory : oinstall.
スクリプトの実行が完了しました
# /u01/app/oracle/product/11.1.0/db_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.1.0/db_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 bi 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.
35. 以上でインストール完了です。
36. /etc/profileに以下の環境変数の設定を行います。
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export NLS_LANG=Japanese_Japan.AL32UTF8
export ORACLE_SID=orcl
export ORA_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin
以上でOracle Database 11gのインストール作業は終了です。
後はデータベースが正しく稼動するか確認しておきます。
【確認手順】
以下の手順でOracle Databaseを起動します。
1.oracleユーザーでログイン
2 リスナーの起動
$ lsnrctl start
3 データベースの開始
$ dbstart
※尚、事前にlsnrctl startを実行していない場合はdbstartでリスナーも一緒に起動することができますが
その場合は第一起動引数でリスナーのホームディレクトリのパスを指定する必要があります。
$ dbstart $ORACLE_HOME_LISTNER
4 Enterprise Manager Database Consoleの開始
$ emctl start dbconsole
この状態でfirefoxを起動しURLにhttps://[ホスト名]:1158/emを指定しEnterprise Managerを表示します。
データベースが正常に起動していることが確認できます。
関連記事: