DB/Oracle/XE 環境構築
目次†
無償で使える Oracle Database Express Edition(Oracle XE)を家の RedHat Enterprise Linux 6(RHEL 6)にインストールするお話。バージョンは 2011 年 11 月 1 日現在で最新の、11g Release 2。
以降の説明は CentOS やら Fedora やらの RedHat系ならだいたい一緒のはず。
概要†
Oracle Database Express Edition は、RDBMS のデファクトスタンダードである Oracle Database の無償版。無償なりの制約はあるものの、小規模な環境であれば充分実用に耐えられる。
制約は以下のとおり。
- CPU は 1 コアしか使わない
- インスタンスは 1 つのみ
- ユーザデータは 11 GB まで
- メモリは 1 GB まで
- HTTPS はサポートされない
ダウンロードと参照ドキュメント†
Oracle の Web サイトからインストール用のパッケージ(今回は x64 環境用の *.rpm.zip)をダウンロードしてくる。
インストールにあたって参照すべきドキュメントはここ。英語しかないみたい。仕方ない。
環境の確認†
最初にインストールの要件を確認。ソースは公式ドキュメント。
システムの要件†
RHEL6 に対応していない…… だと……。まあどうにかなるだろう。たぶん。と思ってやったらどうにかなったので大丈夫。
ざっくり書くと、OS が OEL の 4 か 5、RHEL 4 か 5、SUSE の 10 か 11。企業相手だしこうなるわね。
RAM は最低で 256MB。512MB 以上を推奨。HDD の空きは 1.5GB。
必要なパッケージは以下のとおり。なければ yum であらかじめ入れておく。
- パッケージの要件
パッケージ バージョン glibc 2.3.4-2.41 以上 make 3.80 以上 binutils 2.16.91.0.5 以上 gcc 4.1.2 以上 libaio 0.3.104 以上
SWAP 領域の要件†
2GB か RAM の二倍のどちらか少ないほうだけ必要、だそう。
確認しましょう。
- SWAP 領域の確認
# メガバイト単位で表示されるので、Swap の容量を確認する free -m
カーネルパラメータ要件†
カーネルパラメータも要確認。とはいえ要件より少なかったらインストーラが勝手に修正してくれるようなのであまり気にしなくてもいいかもしれない。
確認しましょう。
- カーネルパラメータの確認
# -a で全部の設定を表示させて目的のパラメータで grep する。下は file-max の例 sysctl -a | grep file-max
- リンク先のドキュメントを参照して全部見る
もし手動で修正をかける場合は以下のファイルを編集する。
- /etc/sysctl.conf に追記していく
# 必要な設定を列挙するだけ fs.file-max = 6815744
手動で修正したら、再起動するか以下を実行して設定を反映させる。
- sysctl.conf の繁栄
sysctl -p
権限の要件†
インストール時は root でね、と。
インストール†
環境が問題なければインストール。以下を順番にやっていく。
パッケージのインストールと構成†
- root になる
su -
- ダウンロードした zip ファイルを解凍してインストールする
# ダウンロード先に移動。下は一例 cd Downloads/ # 解凍 unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip # インストール rpm -ivh Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm
- 必要な初期設定をする
# 指示通りに oracle-xe を実行 # 下のコマンドの代わりに service oracle-xe configure としても同じ /etc/init.d/oracle-xe configure # 以降、指示に従って必要な情報を入力する。
- 入力する情報は以下。
- Oracle Application Express(Web ベースの管理 UI)が使う HTTP ポート(8080)
- リスナの監視ポート(1521)
- SYS と SYSTEM のパスワード
- システム起動時の自動実行の設定
- 入力する情報は以下。
- 待つ
- Installation completed successfully. って出たら完了。すでにリスナも立ち上がっている
環境変数の設定†
データベースの実行に必要な環境変数の設定。
手で設定してもいいんだけど、ご丁寧にスクリプトが用意されているので、これを必要なユーザの ~/.bash_profile から呼び出すようにする。
- ~/.bash_profile に追記する
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
- 確認する
# ~/.bash_profileを再読み込み source ~/.bash_profile # /u01/app/... って何か出てきたら正常 echo $ORACLE_HOME
接続確認†
ここまでできたら接続確認。まずはローカル環境で SQL*Plus から操作できるか確認する。
- SQL*Plus の起動
sqlplus /nolog
- この時点で起動できなければ何かがおかしい。だいたいの場合環境変数の設定あたりだと思われるので再確認
- 接続確認
-- SYSTEM アカウントで接続。パスワードを聞かれるので入力 conn system -- 接続されましたって出れば正常。何かてきとうに SQL 文を叩いて念のため確認 select * from dual;
管理 UI の構成†
この時点ですでに環境はできあがっているので、以降は SQL*Plus を立ち上げれば何でもできる。
で、XE には標準で Web ベースの管理 UI がついてくるんだけど、これは標準ではローカル環境からしかアクセスできない。これをリモートからでもアクセスできるように設定する。
ただし XE では HTTPS がサポートされないので、管理 UI とのやりとりは暗号化されない。この管理 UI を使う際は DBA 権限でログインする必要があるんだけど、この時のパスワードも当然暗号化されないことになるので、8080 番ポートの公開範囲は慎重に考えないといけない。ファイアウォールの設定もわすれずに。
- SQL*Plus の起動
# パスワードを要求されたらインストール時に入力した SYSTEM のを入力 sqlplus system
- 設定
-- 大文字小文字は不問 EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
設定したら、ネットワーク上で届く範囲内のホストからであれば以下の URL でアクセス可能。
- 管理 UI の URL
http://<ip-addr>:8080/apex/f?p=4950
- 管理画面に入る際は SYSTEM アカウントでログインすればよい
- Oracle Application Express の URL
http://<ip-addr>:8080/apex/
- これは Oracle DB を利用したアプリケーション開発で使う Web アプリケーション。詳細はぐぐるったりドキュメント見たりすればわかる
起動と終了†
手動で起動と終了をする場合、あるいは自動実行を設定しなおす場合などは以下の通り。基本ですね。
- コマンドから起動や終了をする
# 起動 service oracle-xe start # 終了 service oracle-xe stop
- 自動実行を構成する
# 自動実行を有効にする chkconfig oracle-xe on # 自動実行を無効にする chkconfig oracle-xe off
クライアントの設定†
サーバが無事に構築できたら、クライアント(別の物理マシン)からも SQL*Plus でつながるようにしておくと何かと楽。詳細は別ページに。
もちろん、わざわざクライアントマシンに SQL*Plus を入れるのが嫌なら、SSH でサーバにつないでからサーバ上で SQL*Plus を走らせるのでも問題ない。
運用†
環境ができたら運用。例えばデフォルトで表領域 USERS があるけどさらに追加したり、ユーザを追加したり権限を与えたり、いろいろとやるべきことはある。別ページにコマンドによる管理操作をまとめてあるので適宜参照のこと。
- DB/Oracle/コマンド
- 運用や管理のためのコマンド操作
- ユーザ作成、表領域作成など
- DB/SQL
- SQL 文の基礎的なところ
上のページは XE ではない製品版の 11g をベースに書いたので若干違うところもあるかもしれない。でもだいたい基本は一緒のはず。
Last-modified: 2011-11-08 (火) 11:47:19