やりたいこと
前回Linuxがインストールできたため、OracleをインストールしてインストールコマンドとOracleの設定を理解する。
課題1 スナップショット作成
スナップショットを作成し、インストール後の状態を保存する。
SSH等設定をぶっ壊す可能性があるため、また仮想化のメリットを理解するため。
回答例1
仮想マシンを選択し、右側のスナップショットボタンからスナップショットを作成する。
課題2 Oracleのインストール
以下から、インストールバイナリを取得してインストールする。
https://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/
※32bit版は10gしかなかったので・・・
回答2
最終的には以下となる。
sudo dpkg -i oracle-xe-universal_10.2.0.1-1.1_i386.deb
問題1SWAPがたりない
デフォルト設定でUbuntuをインストールしたのでSWAPがたりない900MB必要なのに500MBしかないと怒られる。
SWAP領域を拡張
# スワップ用フォルダの作成
sudo mkdir /var/swap
# 1Gのスワップ用のファイル作成
sudo dd if=/dev/zero of=/var/swap/swap0 bs=1M count=1024
# パーミッションの設定
sudo chmod 600 /var/swap/swap0
# スワップ割り当て
sudo mkswap /var/swap/swap0
sudo swapon /var/swap/swap0
# 起動時に自動でスワップが割り当てられるように設定
sudo echo '/var/swap/swap0 swap swap defaults 0 0' >> /etc/fstab
問題2以下のライブラリがないと怒られる
パッケージ libaio はまだインストールされていません。
パッケージ libaio1 はまだインストールされていません。
前回のHTTPプロキシを利用してインストール
※ホストOSのポートフォワードを開始してください。
sudo apt-get install libaio1
課題3 Oracleの設定
インストーラの通知にしたがって設定を行う。
回答3
sudo /etc/init.d/oracle-xe configure
Specify the HTTP port that will be used for Oracle Application Express [8080]:
→エンター
Specify a port that will be used for the database listener [1521]:
→エンター
Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after
initial configuration:
→パスワード入力
Confirm the password:
→同じパスワード入力
課題4 OracleのWEBコンソールを利用
ゲストの8080ポートでWEBコンソールが起動しているため、ホストからアクセスする。
回答4
最終的には以下のURLでホストから参照できる。
http://192.168.99.100:8080/apex/
問題1 外部ホストから接続できない
ubuntuのWFやポートの問題ではなく、Oracleの設定が必要
SQLPLUSで接続 {PASSWORD} は先程設定したパスワード
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/
export ORACLE_SID=XE
cd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/
./sqlplus sys/{PASSWORD}@XE as sysdba
実行するSQL
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
所感
業務でよく使うOracleをインストールするための流れが理解できればうれしい。
Windows版をインストールすると起動が遅くなったり、ポートを塞いだりしますが、
仮想環境ならそのあたりの管理が楽になる。っと理解して貰えれば嬉しいな。