エラーが出た方向け。Oracle Database 18c ExpressEditionをWindowsで使用するための手順。

エラーが出た方向け。Oracle Database 18c ExpressEditionをWindowsで使用するための手順。

4月付けで12年勤めた会社を退職しました。
一言で言えば方向性の違いです。
今回は退職エントリーではないのでその話はまた今度。

転職先にて、Oracle 18c Express Edition を使う機会があったのですが、使用にずいぶんと苦労したため、その技術メモです。

1.Oracle Express Editionとは

OracleのExpress Edition とは、一言でいえば、無料で使えるOracleです。
主に学習使用向けですが、システムの開発環境での使用や、実は商用環境にも使用することができます。

ただリソースの使用にいくつか制限があり、例えばデータベースのサイズは12GBくらいまでしか大きくできません。
商用の大きなシステムがこっそり無料でOracleを使うということは、不可能にしてあるわけです。

photo by Christophe BENOIT

2.Oracle 18c Express Edition DB作成時の注意点

短期間&低スペックで良いのでOracleサーバが必要になり、ボロのWindows7PCへOracle 18c XE をインストールしてみることにしました。

Oracle Database Express Edition (XE) Downloads
Oracle Database Express Edition (XE) Downloads

インストーラーはOracleのサイトから落とせます。
ユーザ登録が必要です。
今後もOracleを使用する機会があるかもしれないし無料なので、未登録の方は行っておきましょう。

ⅰ.インストール

インストール自体はそんなに難しくありませんが、”Oracle Database 18c Express Edition.msi”から行うと必ずエラーになります。

Oracle 18c Express Edition のインストールエラー画面
エラーになった場合のウィンドウ

“setup.exe”から実行することでなぜか回避できます。
また、インストールパスに日本語があるとエラーになるようです。

Oracle 18c Express Edition のデータベースパスワード指定画面

“setup.exe”からの実行だとなぜかインストーラーも日本語表示。
その後は基本デフォルト選択で大丈夫です。
Oracleのインストールを一度でもしたことがあれば余裕でしょう。

ⅱ.接続確認

Express Edition ではインストールが完了した時点で、サンプルDBが自動で作成されます。
インストールの最後に表示されるのがその情報です。

Oracle 18c Express Edition のインストール完了画面

これだけ見ると

sqlplus system/Oracle18c@localhost:1521/xepdb1

で接続できるのかなと思いますが、繋がりません。
外部IPアドレスで指定してあげる必要があります。
localhostの部分を端末の外部IPアドレスへ変えて実行して下さい。

Oracle18c の動作を確認したいだけであれば、このサンプルDBで事足りると思います。

ⅲ.DB削除

サンプルDBはSIDが勝手に設定されてしまうため、開発環境等で使用する場合は変更して自由に指定したいと思います。
そのような場合はDBを作り直すことになります。

まずは、DBCAから”データベースの削除”を実行しましょう。

DBCAのデータベース操作の選択画面

基本的にすべてデフォルト選択で大丈夫です。

ⅳ.DB再作成

削除が終わったら、再作成を行います。
DBCAから”データベースの作成”を実行しましょう。

この部分が今回一番苦戦しました。
すべてデフォルトで進めるとエラーが発生します。(NullPointerException)
“データベース作成モードの選択”では必ず”拡張構成”を選ぶようにしましょう。
これで回避することができます。

DBCAのデータベース作成モードの選択画面

また、メモリーの設定もデフォルトのままで進めると後でエラーになりました。

DBCAの構成オプションの指定画面
DBCAのデータベース作成エラー画面

Express Edition のリソース制限に引っかかってしまうようです。
SGA 1450MB、PGA 450MBとして2GB以内に収まるようにした所、DB作成が無事完了するようになりました。

さて、DBは作成できるようになったのですが、今は古いバージョンのOracleクライアントとの接続が上手くいかず、試行錯誤しています。
もし解決法が見つかればまた共有しますね。

関連書籍