それが可能だと思ったのは、VMware Playerが使用する物理メモリの容量は、vmxファイルに設定する、memsizeというプロパティで制限をかけられるし、仮想メモリのswap領域も、VMware Playerの中で閉じるので、ホストOSであるWindows XP側のリソース消費量は減るであろうという、単純な発想です。
以下、試してみた結果について、説明します。
仮想マシンの準備
Linuxが使えるようになるまでの手順については、Ubuntu VMware Playerで、お手軽にLinux環境を手に入れようで説明していますので、よろしければ参考にしてください。
今回試した環境では、2GBのRAMが搭載されているPCで、仮想マシンのメモリーサイズは384MBに設定しました。
memsize = "384"
インストール
基本的なUbuntuへのインストールの手順は、Installing Oracle Database XE on Debian, Ubuntu, and Kubuntuの、[Update (March 2006)]という見出しがついたコメントの部分で説明されています。ここでは、それをベースに試してみた手順を簡単にまとめてみました。
/etc/apt/sources.listに、以下の行を追加する。deb http://oss.oracle.com/debian unstable main non-free
- aptのキーをダウンロードしてインポートする。
$ wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
- 現在ローカルにあるパッケージのリストを更新する。
$ sudo apt-get update .... 取得:6 http://oss.oracle.com unstable Release [2126B] ....
- パッケージのダウンロードとインストールを実行する。
$ sudo apt-get install oracle-xe-universal .... 以下のパッケージが新たにインストールされます: libaio oracle-xe-universal .... oracle-xe-universal (10.2.0.1-1.1) を設定しています ... Executing Post-install steps... -e You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database. ....
注意
今回は、問題なくインストールが行えたのですが、過去に、スワップ領域不足で失敗することがありました。でも、仮想マシンのハードディスクイメージのパーティション構成を変更することはできません。その場合は、Linuxのスワップ処理を最適化するためのヒントで説明されている、スワップファイルの作成を試してみてください。
インストール後の設定
- サービス起動時の設定オプションを指定する。
インストールの最後に表示された指示メッセージに従って実行します。$ sudo /etc/init.d/oracle-xe configure
設定する項目は、以下の通りです。
- Oracle Application Expressのポート番号
デフォルトは8080なので、Tomcatをいっしょに動かす場合には、変更しておきたいところです。 - TNS Listnerのポート番号
デフォルトの1521にしておくのが妥当ですね。 - SYSとSYSTEMのパスワード
- システムブート時に自動起動するかどうか
/etc/rc2.dに、S20oracle-xeというシンポリックリンクが作られます。自動起動をやめたい時は、K20oracle-xeにリネームします。
- Oracle Application Expressのポート番号
- その他知っておくと便利なこと
いずれも、Oracle Database Express Edition Installation Guideにて説明されていることですが、簡単にまとめておきます。
- クライアント環境変数の設定
$ . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
詳細は5.2 Setting the Oracle Database XE Client Environment Variablesを参照してください。
注意
実際には、このスクリプトにはバグがあるようで、以下のようなエラーメッセージが出ます。/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh: 114: [[: not found /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh: 114: [[: not found
その回避策が、Bearded Magnum - Oracle-xe on Ubuntuで説明されていますので、よろしければ、お試しください。
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.shを、以下の通り修正します。108c108 < if [[ -n "$LC_ALL" ]]; then --- > if [ -n "$LC_ALL" ]; then 110c110 < elif [[ -n "$LANG" ]]; then --- > elif [ -n "$LANG" ]; then
- Oracle Application Expressを、ホストOS側のWebブラウザからも使用できるようにする。
デフォルトでは、ローカルのWebブラウザからしか使用できないようになっていますが、ホストOS側から使えた方が、何かと便利なので、この設定は行っておいた方がいいと思います。$ sqlplus system .... パスワードを入力してください: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production に接続されました。 SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); PL/SQLプロシージャが正常に完了しました。
詳細は、Oracle Database Express Edition Installation Guideの4.4 Making Oracle Database XE Server Available to Remote Clientsを参照
- クライアント環境変数の設定
以上で、セットアップは完了です。
今回の環境では、仮想マシンに384MBのRAMを割り当てていますが、その設定では、VMware Playerが、常時450MB程度のRAMを使用するようです。単独で動かす場合には、パフォーマンスの問題はないと思いますが、ホストOS側で、一緒に動かすアプリケーションによっては、たまに、レスポンスが遅くなることはあるようです。
今後、もう少し様子を見つつ使って行って、本当に問題がなさそうであれば、Windows側のOracleXEはアンインストールしようと考えています。
J2EE系の開発をしている場合、プロダクション環境はLinuxであることも多いと思います。そんなときに、自分で自由に使えるLinux環境があると、事前の確認作業などで、何かと役に立ちますので、VMware + Linuxという環境を作っておくこと自体は、おすすめします。
参考資料
