Oracle 9i (9.2)をRedHat 9にインストールする方法 RedHat9へのOracle9.2インストールお試し版をダウンロードしてきて,Oracle9iを動かすことにした. 最近RedHat9を新規でインストールしたので,これに入れてみる. ...と安易に考えたのですが,今回はOracle9iが対応しているOSではないこともあって,はまりにはまりの大はまりでした. このサイトがなければ,一生インストールできなかったことでしょう.
まさに,救いの神でした.
今回使ったソフト
1.OS関係の設定Oracle9.2のリリースノートによると,hostsファイルを変更した方が良いらしい.自分自身のIPアドレスとホスト名を記述した行がないと,まずいとのことなので, /etc/hosts 127.0.0.1 localhost 192.168.0.105 inspiron このマシンには192.168.0.105というアドレスを振っているのですが,「inspiron」がホスト名です. 以下たびたび登場しますので,各自のホスト名で読み替えてください. 次にカーネルパラメータの設定. SHMMAXはメモリ(512MB)の半分のサイズに設定し,その他は推奨値を使用してみる. /etc/rc.d/rc.local に追加 echo 100 32000 100 100 > /proc/sys/kernel/sem echo 268435456 > /proc/sys/kernel/shmmax echo 65536 > /proc/sys/fs/file-max ulimit -n 65536 echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range ulimit -u 16384
2.OSのグループ,ユーザを追加グループを2個と,ユーザを1個追加する.# groupadd oinstall # groupadd dba # useradd -d /home/oracle -G oinstall,dba -p xxxxx oracle
3.oracleユーザの環境設定ここからが核心になります./home/oracle/.bash_profile に,以下の内容を追加 export DISPLAY=inspiron:0.0 export ORACLE_BASE=/home/oracle/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/9.2.0.1.0 export ORACLE_SID=tets92 export NLS_LANG=Japanese_Japan.JA16SJIS export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export LD_ASSUME_KERNEL=2.4.1 LD_ASSUME_KERNELは,神のサイトからの情報です. これを設定しないと,インストールが途中で止まるらしい.
4.インストール準備から開始までユーザoracleでLinuxにログインし,ダウンロードしたファイル3個
を展開する. このとき,ファイル(ディスク)ごとにディレクトリを分けて展開しないと駄目です. 混ぜてしまうと失敗します.(しました) 例えばこんな具合. $ mkdir disk1 $ mkdir disk2 $ mkdir disk3 $ mv R920Lv3d1.tar.gz disk1/ $ mv R920Lv3d2.tar.gz disk2/ $ mv R920Lv3d3.tar.gz disk3/ $ cd disk1;tar zxf R920Lv3d1.tar.gz; cd .. $ cd disk2;tar zxf R920Lv3d2.tar.gz; cd .. $ cd disk3;tar zxf R920Lv3d3.tar.gz; cd .. $ cd disk1/mnt/cdrom $ ./runInstaller なお,Oracle9.2ではJDKの事前インストールは不要です.インストーラが勝手にやってくれました.
リンクエラーその1すると,リンクの進行中に停止するのでログを見ると,/home/oracle/app/oracle/product/9.2.0.1.0/network/lib/libnmi.a(nmijs.o)(.text+0x3552): In function `nmijsgn_GetNextTime':: undefined reference to `__ctype_b' 神のサイトの指示に従って,一時的にglibcを2.3.2-5にバージョン下げます.
http://www.puschitz.com/rh9_gcs_download/
そして, # rpm --import /usr/share/rhn/RPM-GPG-KEY # rpm --checksig *.rpm # rpm -Uvh --oldpackage *.rpm
リンクエラーその2しかし今度は,/lib/libdl.so.2: undefined reference to `__ctype_b_loc@GLIBC_2.3' これも,神のサイトの指示に従おう.エラーで止まってダイアログが表示されているままで, 裏から $ORACLE_HOME/ctx/lib/env_ctx.mk INSO_LINK = $(LDLIBFLAG)dl INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl ...
5.インストール後の確認何とかインストールが終わったようなので,$ sqlplus '/ as sysdba' データベースはまだ作成していないので,データベースの起動はできないが, ここまでやって疲れ果ててしまったので,いったん切り上げた. あと,glibcを元の(RedHat9の)バージョンに戻しておく.これはRHN自動更新で自動的にやってくれるとは思います.
6.データベースの作成初期化パラメータの設定とか面倒なので,DataBase Configuration Assistantを使って行う.$ dbca
しかしこれで作成すると,エラー! create control fileの箇所で,以下の意味不明なエラーが発生した. トホホ,一体どこまでうまくいかないんでしょうか. ORA-01503: CREATE CONTROLFILE??????? ORA-00058: ???????DB_BLOCK_SIZE?8192?????(6144??????)? $ LANG=C まぁ謎は謎として, $ sqlplus '/ as sysdba' SQL> startup
7.データベースの設定変更ここから先は,私の利用目的に依存した話なので, どうでもいいっちゃどうでもいいことです.
ユーザscottにusers表領域を使わせるユーザsystemでログインして実行する.SQL> alter user scott default tablespace users
users表領域へのファイル追加SQL> alter tablespace users add datafile 'users02.dbf' size 300M autoextend off
ユーザscottにv$ビューへの参照権限付与 (AUTOTRACE用)SQL> grant select any table to scott SQL> alter system set O7_DICTIONARY_ACCESSIBILITY=TRUE scope=spfile
PLAN_TABLEの作成 (実行計画の確認用)これだけは,ユーザscottでログインして実行する.SQL> @/home/oracle/app/oracle/product/9.2.0.1.0/rdbms/admin/utlxplan.sql まぁ,ユーザscottを使って,SQLのチューニング実験をやろうというわけです. そのために,実行計画やAUTOTRACEの統計が欲しいのでこんなことを. scottにSELECT ANY TABLE権限を与えてもv$ビューを参照できないので,しばらく悩みました. マニュアルを見てようやくO7_DICTIONARY_ACCESSIBILITYに気づいた次第です. ...と思っていたが,実はこんなややこしいことをしなくても, scottにv$ビューへの参照権限を付与するには, SQL> grant select any dictionary to scott |