24.4. Oracle のインストール

Marcel Moolenaar 寄贈

24.4.1. はじめに

このドキュメントでは Oracle 8.0.5 と Oracle 8.0.5.1 Enterprise Edition の Linux 版を FreeBSD にインストールするための手順を解説します.

24.4.2. Linux 環境のインストール

まずは ports コレクションから linux_baselinux_devtools をインストールしてください. これらの ports は FreeBSD 3.2 のリリース後にコレクションに加えれれました. もし FreeBSD 3.2 もしくはそれよりも古いものを使っている場合は ports コレクションをアップデートしましょう. ついでに FreeBSD をアップデートするのもいいでしょう. もし linux_base-6.1linux_devtools-6.1 でうまくいかなければ 5.2 を試してみてください.

もし賢いエージェント (intelligent agent) を起動したいなら Red Hat TCL パッケージ tcl-8.0.3-20.i386.rpm もインストールする必要があるでしょう. オフィシャルな RPM パッケージをインストールするには一般的に次のようにします.

    # rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package

パッケージのインストール時にエラーが出てはいけません.

24.4.3. Oracle 環境の構築

Oracleをインストールする前に, 適切な環境を設定する必要があります. このドキュメントでは, Oracle のインストールガイドに書いてあるようなことではなく FreeBSD で Linux 用 Oracle を動かすために特別に必要なことのみを解説します.

24.4.3.1. カーネルのチューニング

Oracle インストールガイドにあるように, シェアードメモリーの最大サイズを設定しなければいけません. FreeBSD では SHMMAX を使わないようにしてください. SHMMAX は単に SHMMAXPGSPGSIZE から計算されるだけなのです. 従って, SHMMAXPGS を使うようにしましょう. インストールガイドに記述されている他のオプションは使えます. 例えば以下のようにします.

    options SHMMAXPGS=10000
    options SHMMNI=100
    options SHMSEG=10
    options SEMMNS=200
    options SEMMNI=70
    options SEMMSL=61

これらのオプションを意図した Oracle の使い方に合わせて設定してください.

また, 次のオプションがカーネルのコンフィギュレーションファイルにあることも確認します.

    options SYSVSHM #SysV shared memory
    options SYSVSEM #SysV semaphores
    options SYSVMSG #SysV interprocess communication

24.4.3.2. Oracle 用アカウント

他のアカウントを作るのと同じように Oracle 用のアカウントを作ります. Oracle 用のアカウントに特別なのは Linux のシェルを割り当てるところだけです. /etc/shells/compat/linux/bin/bash を加え, Oracle 用のアカウントに設定します.

24.4.3.3. 環境設定

ORACLE_HOMEORACLE_SID といった通常の Oracle 用の変数の他に次の変数も設定しなければなりません.

変数
LD_LIBRARY_PATH$ORACLE_HOME/lib
CLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zip
PATH/compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin

全ての環境変数は .profile で設定することをお勧めします. 完璧なサンプルは以下の通りです.

    ORACLE_BASE=/oracle; export ORACLE_BASE
    ORACLE_HOME=/oracle; export ORACLE_HOME
    LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export LD_LIBRARY_PATH
    ORACLE_SID=ORCL; export ORACLE_SID
    ORACLE_TERM=386x; export ORACLE_TERM
    CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
    export CLASSPATH
    PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin
    export PATH

24.4.4. Oracle のインストール

インストーラーを起動する前に, /var/tmp.oracle という名前のディレクトリを作る必要がありますが, これは Linux エミュレーターにおけるちょっとした不整合のためです. このディレクトリは誰でもが書けるか, もしくは oracle ユーザーのものにしておきます. これで特に問題なく Oracle がインストールできるでしょう. もし問題が起こったら, まずは Oracle の配布物や設定をチェックしてください. Oracle のインストールが終わったら次の二つのサブセクションで解説するパッチを当てます.

よくあるトラブルは, TCP プロトコルアダプターが正しくインストールされていないことです. そのため, 一切 TCP リスナーを起動することができないのです. 次の操作はこの問題を解決するのに役立ちます.

    # cd $ORACLE_HOME/network/lib
    # make -f ins_network.mk ntcontab.o
    # cd $ORACLE_HOME/lib
    # ar r libnetwork.a ntcontab.o
    # cd $ORACLE_HOME/network/lib
    # make -f ins_network.mk install

もう一度 root.sh を起動するのを忘れないように!

24.4.4.1. root.sh へのパッチ

Oracle をインストールする時, root で行なう必要のあるいくつかの操作は root.sh と呼ばれるシェルスクリプトに記録されます. root.shorainst ディレクトリにあります. 次のパッチを root.sh に当てて 正しい場所にある chown コマンドを使うようにするか, 代わりに Linux ネイティブなシェルのもとでスクリプトを走らせましょう.

    *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
    --- orainst/root.sh Mon Dec 28 15:58:53 1998
    ***************
    *** 31,37 ****
    # This is the default value for CHOWN
    # It will redefined later in this script for those ports
    # which have it conditionally defined in ss_install.h
    ! CHOWN=/bin/chown
    #
    # Define variables to be used in this script
    --- 31,37 ----
    # This is the default value for CHOWN
    # It will redefined later in this script for those ports
    # which have it conditionally defined in ss_install.h
    ! CHOWN=/usr/sbin/chown
    #
    # Define variables to be used in this script

CD-ROM からのインストールでない場合は root.sh のソースにパッチを当ててもいいでしょう. rthd.sh という名前でソースツリーの orainst というディレクトリにあります.

24.4.4.2. genclntsh へのパッチ

genclntsh スクリプトは一つの共有クライアントライブラリを生成するのに用いられます. これはデモを作る時に使われます. PATH の定義をコメントアウトするために次のパッチを当ててください.

    *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
    --- bin/genclntsh Tue Dec 22 15:36:49 1998
    ***************
    *** 32,38 ****
    #
    # Explicit path to ensure that we're using the correct commands
    #PATH=/usr/bin:/usr/ccs/bin export PATH
    ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
    #
    # each product MUST provide a $PRODUCT/admin/shrept.lst
    --- 32,38 ----
    #
    # Explicit path to ensure that we're using the correct commands
    #PATH=/usr/bin:/usr/ccs/bin export PATH
    ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
    #
    # each product MUST provide a $PRODUCT/admin/shrept.lst

24.4.5. Oracle の起動

インストラクションに従えば, Linux でと同じように Oracle を起動できるでしょう.