2007-03-09

Oracle Express EditionをGentooに入れる

Oracle Express Edition(Oracle XE)は、4GBまでのデータを格納できる無料の Oracle。

Oracle XEは rpm又はdebで配布されている。ここではrpmを使う。
Oracleの動作にはlibaioとbcも必要なようなのでそれもemergeする。

# emerge libaio bc rpm

/etc/sysctl.confに下記を追記して、sysctl -pで反映しておく。

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

グループdbaとユーザーoracleを作成する。
本当はインストールスクリプトで自動作成するようになっているらしいんだけど、私のところではうまくいかなかったので手動で。

# groupadd dba
# useradd -m oracle -g dba -G wheel

rpmを使って Oracle XEのパッケージをインストール

# rpm -ivh oracle-xe-univ-ほげほげ.i386.rpm --nodeps

ファイル名に univ って入っている方のパッケージじゃないとデータベースの文字セットがWesternになってしまうので日本人は悲しい目にあうため注意。univって入っている方のパッケージだと内部文字セットにUNICODEが使われる。シフトJISやらEUCやらはXEではサポートされていないというもっぱらの噂。

rpmのインストールが済んだら、/etc/init.dに cdして下記のコマンドを入力(引用元:Gentoo Linux Wiki)。
なにやら Gentoo用に initスクリプトをちょっと直す必要があるみたい。

# sed -i -e "s/\$SU -s \/bin\/bash \{1,2\}\$ORACLE_OWNER -c/\$SU \$ORACLE_OWNER -l -c/g" oracle-xe


ここでハマりどころひとつ。(いや、普通の人はそんなところではまらないのだけど)
/etc/hostsに自分のホスト名が書かれてないと Oracleは正常動作しない。
初期化スクリプトが妙に早く完了したなと思ったら全然データベースが出来てない。
(通常のOSインストール手順を踏まずに仮想マシンとかで手早くセットアップした環境だとそういう問題が起こりうる)

下記コマンドで初期DBを作成する。Web管理画面やリスナーのポート番号、SYSなどの初期パスワードを聞かれる。

# /etc/init.d/oracle-xe configure

質問に答えたあとしばらく処理が行われているようだったら成功の可能性大。
時間をおかずにすぐプロンプトに帰ってくるようだと、おそらく初期DBの作成に失敗したか、あなたのマシンがアホみたいに速いかのどちらか。ちなみに私のところでは Athlon64X2 5200+とRAIDの環境で十数秒〜数十秒かかったと思う。

初期DBの作成が済んだら rc-update add oracle-xe default して自動起動にするとか、http://yourhost:8080/apex にアクセスして Web管理画面から色々やってみるとか、クラシカルに sqlplusでつないでみるとかすれば良い。

但しsqlplusを動かすためには当然伝統的な ORACLE_HOMEとかの設定が必要。

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_SID=XE
export NLS_LANG=japanese_japan.UTF8
export PATH=$ORACLE_HOME/bin:$PATH

インスタンスの名前は XE になる。TNS記述子もその名前で作られる。
変更できるのかは知らない(TNS記述子は変更できるだろうけど・・・)

注意:64bit環境の人は何とかして 32bit版の libaio.so.1を /usr/lib32 に入れてやらないと動かない。

ラベル: ,

0 件のコメント:

コメントを投稿

<< ホーム