Oracle Database Express Edition(XE)とは

Oracle Database Express Edition(以下XE)とは制限付きながら無償で商用利用できるデータベースソフトウエアです。
10g版XEはWindows x86(32bit)及びLinux x86(32bit)環境用が提供されており、バージョンは10.2.0.1相当のデータベースが動作します。
11g版XEはWindows x86(32bit)及びLinux x86 64(64bit)環境用が提供されており、バージョンは11.2.0.1相当のデータベースが動作します。

また、XEにはWEBからGUIでWEBアプリケーションが作成できるAPEX(Oracle Application Express)とAPEXで作成された簡単なORACLEのGUI管理ツールが付属しています。

XEの制限

XEには以下の制限があります。

・CPUリソースは1CPU(1core)相当分まで
・SGAとPGAのメモリパラメータ値は合計1GBまで
・ユーザ表領域(SYSTEMやSYSAUXの表領域は含まない)のサイズは10g版は4GB、11g版は11GBまで
・インストール時にDBのSIDとORACLE_HOMEが固定される(複数のデータベースやソフトウエアのインストールはできない)

インストールされる主なユーティリティ

・exp/imp
・data pump(expdp/impdp)
・dbv
・lsnrctl
・orapwd
・rman
・sqlldr
・sqlplus
・tkprof
・tnsping

※各ユーティリティの詳細はユーティリティ概要を参照してください

XEソフトウエアの入手

XEは2015年9月現在以下のページよりダウンロードすることができます。(OTNのアカウント登録(無料)が必要です)

Oracle Database Express Edition Downloads

XEのインストール

本ページの手順では10g XEをCentOSにインストールします。使用したファイルはrpm版のoracle-xe-10.2.0.1-1.0.i386.rpmを使用しました。 ubuntu等のディストリビューションへインストールする場合は拡張子がdebのパッケージを使用してください。

1 rpmパッケージのインストール
rpmパッケージよりoracleソフトウエアをインストールします。
インストール先のORACLE_HOMEは/usr/lib/oracle/xe/app/oracle/product/10.2.0/serverです。
[root@localhost oraxe]# rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm
準備中...                ########################################### [100%]
This system does not meet the minimum requirements for swap space.  Based on
the amount of physical memory available on the system, Oracle Database 10g
Express Edition requires 1024 MB of swap space. This system has 511 MB
of swap space.  Configure more swap space on the system and retry the installation.
   1:oracle-xe              ########################################### [100%]
Executing Post-install steps...
You must run '/etc/init.d/oracle-xe configure' as the root user to
configure the database.
2 データベース及びリスナーの構成
oracleが使用するポート番号やパスワードを設定し、データベースを作成します。
[root@localhost tmp]# /etc/init.d/oracle-xe configure

Oracle Database 10g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 10g Express
Edition.  The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts.  Press >Enter< to accept the defaults.
Ctrl-C will abort.

Application Expressのポート番号を8080から変更する場合はポート番号を入力
Specify the HTTP port that will be used for Oracle Application Express [8080]:

リスナーのポート番号を1521から変更する場合はポート番号を入力
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: sysとsystemユーザのパスワードを入力
Confirm the password:  sysとsystemユーザのパスワードを入力

Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:

Starting Oracle Net Listener...Done
Configuring Database...Done
Starting Oracle Database 10g Express Edition Instance...Done
Installation Completed Successfully.
To access the Database Home Page go to "http://127.0.0.1:8080/apex"

XEの起動と停止

以下をrootで実行する他、dbaグループに所属するOSユーザでsqlplusとlsnrctlを使って起動停止することもできます。

起動
/etc/init.d/oracle-xe start
または
service oracle-xe start

停止
/etc/init.d/oracle-xe stop
または
service oracle-xe stop

XEを使用するOSユーザの作成

XEをインストールした時点でoracleユーザとdbaグループが自動作成されますが、データベース管理ユーザとしてdbaグループに属すoraxeというユーザを作成することにします。

1 ユーザ作成
su -
useradd -G dba oraxe
passwd oraxe
→パスワードの値を入力

2 環境変数の設定(シェルがsh、bash、kshのいずれかの場合)
su - oraxe
~/.bash_profileに以下を追記します
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_SID=XE
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=JAPANESE_JAPAN.AL32UTF8
※NLS_LANGのAL32UTF8の箇所はコンソールの文字コードに合わせて適宜変更します。(SJISの場合はJA16SJIS、EUCの場合はJA16EUC等)

3 sqlplusでの接続確認
su - oraxe
[oraxe@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 木 4月 21 14:33:18 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL>

APEXの有効化と無効化(任意)

sqlplusから以下を実行することでAPEXを有効化、無効化することができます。

有効化
SQL>EXEC DBMS_XDB.SETHTTPPORT(8080);
※8080はインストール時に設定したポート番号

無効化
SQL>EXEC DBMS_XDB.SETHTTPPORT(0);

状態の確認
SQL>SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;

XEの制限値によるエラー

ユーザ表領域の制限
SQL> ALTER DATABASE DATAFILE '/usr/lib/oracle/xe/oradata/XE/users.dbf' RESIZE 4400M;
ALTER DATABASE DATAFILE '/usr/lib/oracle/xe/oradata/XE/users.dbf' RESIZE 4400M
*
ERROR at line 1:
ORA-12952: The request exceeds the maximum allowed database size of 4 GB
メモリ制限
SQL> alter system set sga_max_size=1200M scope=spfile;

System altered.

SQL> shutdown abort
ORACLE instance shut down.
SQL> startup
ORA-44412: XE edition memory parameter invalid or not specified
なお、SGAの設定でエラーになるとインスタンスが起動できずalter system文によるパラメータ変更ができないため以下の手順で復旧します。

1 アイドル状態のインスタンスにsqlplus " / as sysdba"で接続
2 create pfile from spfileでpfile(/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/dbs/initXE.ora)を作成
3 viでpfile内のsga_max_sizeの値を元の値に修正
4 spfile(/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/dbs/spfileXE.ora)を削除
5 インスタンスを起動する
6 create spfile from pfileでspfileを再作成する

マニュアル

・Oracle Database Express Edition 10g Release 2 (10.2)ドキュメント一覧
・Oracle® Database Express Edition Installation Guide 10g Release 2 (10.2) for Linux
・Oracle® Database Express Edition Installation Guide 10g Release 2 (10.2) for Microsoft Windows
・Oracle® Database Express Edition Getting Started Guide 10g Release 2 (10.2)
・Oracle® Database Express Edition 2 Day DBA 10g Release 2 (10.2)
・Oracle® Database Express Edition 2 Day Developer Guide 10g Release 2 (10.2)
★ORACLE案件承ります