次のページ 前のページ 目次へ

3. インストーラ

3.1 どうやって?

一般的に、Oracle のドキュメントに従うのがいいでしょう。悪くない出来 ですし、それに従っておけば、ずっとましなサポートを Oracle から受ける ことができます。 (Oracle Applications のドキュメントに従って - そうなるんじゃないかと わかっていたものの - 物事をぶち壊して終わったことがありました。それが まともなサポートを受ける唯一の方法だったのです)

私のドキュメントでは概略を説明しますが、Oracle のドキュメントも依然 手元におく必要があります。

3.2 インストールプログラムの質問にどう答えるか?

インストール作業の一部として、Oracle は数多くの質問をたずねてきます。 一般に、そんなに難しいものではありませんが、私の入力とその理由を 見てみましょう。

  1. インストールプログラム(runInstaller)を 'oracle' ユーザとして 走らせます。
  2. タイトルスクリーンが出てくるはずです。'Next'をクリック。
  3. インストール用のファイル('jar'ファイル) のソースディレクトリと Oracle インストール用ディレクトリを入力するように指示されます。 前者は特に指定しなくても大丈夫でしょう。後者の Oracle ホームディレクトリ (ORACLE_HOME)とは、ソフトウェアをインストールする場所のことです。 インストール作業ドキュメントによれば、それは /u01 の下のどこかということですが、 私はそれを無視して /home/oracle に設定しました。本当は Oracle の アドバイスに従って、異なったデータベースファイルは異なったディスクに 分散して置いたほうがいいのですが。 詳細項目を入力したら 'Next' をクリックします。
  4. それから DBA グループについてたずねてきます。これは、前節で作成した Unix グループで、おそらく 'dba' です。詳細を入力して、'Next' を クリックします。
  5. 今度は 'root' としてログインし、/tmp/OraInstall/orainstRoot.sh を走らせる必要があります。指示の通りにやりましょう。(pdkshbash を使って成功裏にこのスクリプトを終了させるには、「B シェル互換モード」 で走らせる必要があるかもしれません) 終わったら 'Retry' をクリックします。
  6. 次に何をインストールするか選ぶことができます。ほとんどすべてを含んで いる 'Oracle Enterprise Edition' を選ぶのがベストです。 (Oracle のドキュメントの表 3.1 から、何をインストールするのかわかります) 右のラジオボタンを選択していることを確認して、'Next' をクリックします。
  7. ここでは、ずっと細かく何をインストールするか選べます。ディスク容量の 制限が特にきついとか、必要なものがはっきりわかっているとかでなければ、 そのままにして、'Next'をクリックしたほうがいいでしょう。Universal Installer は愚かな選択を許しませんので、何かのチェックを外しても あまり心配する必要はありません。いつでも元に戻って追加することができます。
  8. インストールするように指示した任意の製品について、どこに入れるか 変更することができます。ここでも、変更するのは、しっかりした理由の あるときだけにしてください。終わったら 'Next'をクリック。
  9. ウィンドウが消えて、指示したすべてのソフトウェアがインストール されます。これには、たぶんしばらく時間がかかり、思うよりずっと メモリを消費するでしょう。
  10. データベースを作成するか聞いてきます。よほどメモリや根気が ないかぎり、ここでは 'No'を選んでおきましょう。というのは、これが、 別の Java バーチャルマシンと X Window を起動するようなのです。 あいにく、2つの JVM プラス Oracle バックエンド (訳注:Oracle インスタンスの ことと思われる) というのは、とても 128MB には収まりません。もしこの方針を 貫徹するのなら、いったん次節に進み、終わったらここに戻ってきてください。 (多くの人たちがこの時点でデータベースを作ると実際にはうまくいかないと コメントしています)
  11. Oracle にサポートさせたいネットワークプロトコルを聞いてきます。 私の場合、入力フィールドは全部空欄でした。 何を記入すべきかわかりませんが、 'Next'をクリックしてすべてうまくいきました。 (訳注:TCP 用のネットワークアダプタがデフォルトでインストールされる ので、その画面が空欄でも問題はありません)
  12. これで大変なところは終わりです。指示した製品はすべてインストールが終わり、 準備完了です。おめでとう。

3.3 パッチのインストール

あいにく、Oracle から送られてきた CD はたぶんバージョン 8.1.5.0.0 でしょう。他のソフトウェアの最初のリリースがたいていそうで あるように、このバージョンにも問題があり、(問題は空ファイル がらみなので、かなり深刻です) バージョン 8.1.5.0.2 へバージョンを上げる ためのパッチが不可欠です。この HOWTO の「コンフィギュレーション」の 節に進むには、確実に必要になってきます。ここに記述されたパッチは、 累積パッチです。つまり、8.1.5.0.0 から 8.1.5.0.2 へ移行するのに必要な ファイルをすべて含んでいるということです。

必要なファイルは Oracle のウェブサイトにあり、 インストールするのは比較的簡単です。 (訳注:日本で出荷されている R8.1.5には R8.1.5.0.1 のパッチが付属しています)

  1. これを手始めとしてたくさんのパッチを当てることになるでしょうから、 どこか便利なところに "patches" というディレクトリを作っておきましょう (私の場合 $ORACLE_HOME)。
  2. パッチファイルをダウンロードしてそこに置きます。
  3. 一時ファイルのための場所を確保します。
    mkdir /tmp/orapatch
    cd /tmp/orapatch
    
  4. パッチファイルを解凍します。
    tar zvxf $ORACLE_HOME/patches/linux815patches.gz
    
  5. カレントディレクトリにできたシェルスクリプトを実行します。
    ./linux_815patches.sh
    
くれぐれも、カレントディレクトリ上で、パッチファイルを解凍 しないようにしてください。パッチのインストーラは存在する ファイルの数が正しいか確認し、もしそうでないと失敗します。 当然、パッチのアーカイブファイルを見つけ出すと、ファイルの数が 多すぎることになってしまいます!

3.4 環境設定

".profile"(またはふだん使うシェルでそれに相当するもの) に次の行を加えてください。

. oraenv
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
なぜ Oracle のインストーラがこれをやらないのかは謎です。

次にログインするときに、"[: integer expression expected before -lt" というメッセージを見たら、それは 'oraenv' は ULIMITの中に デフォルトの 'unlimited' ではなく整数を求めていたからです。 このエラーを無視しても悪影響はありませんが、 任意の有限数を ULIMIT に設定することで、出ないように することができます。

3.5 インストール Q&A

インストールプログラムが 'CreateOUIProcess()' と言って終了してしまいます。

まず正しいバージョンの JVM を走らせているか確認してください。 Oracle が彼らのソフトウェアに対して何をしているのかはわかりませんが、 使用するバージョンに深く依存しています。

次に、CD のルートディレクトリから runInstaller を走らせる代わりに、 install/linux に移動して シェルスクリプト runInst.sh を走らせると うまくいくかもしれません。

この問題は、RedHat 6.0 より 6.1 でよくあるようで、新しい C ライブラリに 関係しているのかもしれません。

また、Gnome の通常のウィンドウマネジャ Enlightenment でバージョンが違うと この問題が発生する可能性があると聞いたことがあります。バージョンを上げるか、 KDE や Fvwm2 といった他の環境に切り替えてみてください。 (訳注:これは RedHat 6.0 に関する問題です。対応したパッチが RedHat からダウンロード 可能になっています)

インストーラがスクリーン上でただ点滅して、その後消えてしまいます。

これは珍しいことではありません。通常、これは古いバージョンの Enlightenment を走らせているということを意味しています。バージョンを上げ たり他の環境に切り替えたりすることで、この問題を解決することができるはず です。

これと似たような問題ですが、もっと先の段階でインストールプログラムが 消えてしまうこともあります。インストールが8割がた終了したあたりで起こること の多い現象です。どうやらメモリが不足しているらしいというのが大方の見方です。 マシンのスワップの量を増やしてみるといいでしょう。200MB より多ければ十分な はずです。

イントールプログラムを起動したとき、奇妙な Java のエラーが発生します。

どのバージョンの Java バーチャルマシンを使っていますか?多くの人たちが 他のバージョンでの成功を主張しているものの、私の場合、大部分の問題が 解決したのは、Oracle がドキュメントで推奨している JRE 1.1.6v5 に バージョンを下げたときでした。

指摘する価値のあることをあと2つ - 必ず JDK ではなく JRE を使うこと、 もう1つは、"green" スレッドを使うべきだということです。 THREADS_FLAG を 'native' と設定しないかぎりは、ほぼ確実に設定は正しいはずです。

インストールプログラムで 'Segmentation Fault'と言われます。

ちゃんと GLIBC 2.1 を使ってますよね?

共有ライブラリをロードするときの問題。

問題のエラーメッセージはこんな感じです -

error in loading shared libraries: libclntsh.so.8.0: cannot open
shared object file: No such file or directory

これは、NT が DLL を見つけられないと文句を言っているのと同じです。 直すのはとても簡単です。もし B シェル風のシェルを使っているなら、 ".profile" の最後に次行を単純に追加します。 (何のことかわからなければ、身近の詳しい人に質問してみてください)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

また、C シェル風のシェルでは次行を使います。

setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH$ORACLE_HOME/lib"

私は C シェルを使わないので、実際にこのコマンドを確認していただけると ありがたいです。

Pro*C が動きません

答えにたどり着くまでしばらく問題を追跡してみる必要がありました。 もっとも一生懸命さがせば Oracle のウェブサイト自体に答えはあるのですが。

デフォルトのコンフィギュレーションでは、Pro*C はどこにすべてのライブラリが あるのか知らないので、教えてあげる必要があります。インストールした後 $ORACLE_HOME/precomp/admin/pcscfg.cfg は空ですが、次の項目を 記入する必要があります。

sys_include=(/home/oracle/precomp/public, /usr/include,
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/,
/usr/include, /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include,
/usr/include)
include=(/home/oracle/precomp/public) 
include=(/home/oracle/rdbms/demo) 
include=(/home/oracle/network/public) 
include=(/home/oracle/plsql/public)
ltype=short

(sys_include から include) までの最初の4行はファイルの 中ですべて同じ行に置くこと)

Oracle のドキュメントは触れていないのですが、 $ORACLE_HOME/precomp/lib/env_precomp.mk も修正の必要が あります。CCPSYSINCLUDE を定義している行で、次のようにします。

CCPSYSINCLUDE=sys_include='($(ORACLE_HOME)/precomp/public,
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include,
/usr/include/g++-2, /usr/include)'

RedHat 6.0 ならこれでいいのですが、他のディストリビューションや RedHat の新しいバージョンではすこしひねりが必要かもしれません。

パッチを当てたものの、ますます事態が悪化しました!

これは、Oracle のドキュメントにほとんど書かれていないものの、 すべての製品やインストールプログラムに共通するやっかいな問題です。 この件に関しては、いいかげん Oracle に手を打ってもらわないと!

よく起こるのは次のようなことです - Oracle Enterprise Edition を インストールします。そして、Oracle の言う通り、そのままこんどは 手元にあるパッチをインストールします。それから、プリコンパイラが 必要だと決断して、同じ CD から Oracle Programmer をインストールします。

Pro*C をインストールする前はデータベースは動いていたのに、いまはもう 動きません。

問題は、インストールしたバージョンのプリコンパイラにはパッチが当たって おらず、Oracle サーバのコードの一部はその修正部分に依存している、という点に あります - Oracle のインストーラは愚かにも同じコードの新しいバージョンを 上書きしてしまうのです。

解決法はぱっとしません。CD から一つ一つのファイルを抜き出すことが できないので、全体をインストールしなおす必要があります。今度は、パッチの前に Oracle Programmer を追加するようにします。


次のページ 前のページ 目次へ