Oracle XE — Oracle Database の無償版
- Oracle XE とは
Oracle Database 10g Express Editor (OracleXE)はオラクルが提供する、Oracle Database の無償版です。
ライセンスと制限
・Free to develop, deploy, and distributeとある。
商用利用可能 (開発/デモ版ではない)
再配布可能 (アプリケーションに同梱して再配布できる)
・制限
最大4GBのユーザデータ
1インスタンスのみ (SIDはXEで固定)
1CPUしか利用しない (2CPU以上あっても活用できない)
最大1GBのメモリしか利用しない (1GB以上あっても活用できない)
ライセンス上には特に支障がないと思われます。幾つかの制限が設けられていますが、小規模なサイトの場合は十分行けるでしょう。
- インストール
OracleXE はRPMで提供され、非常に簡単にインストールできます。公式ページか ら、Oracle Database 10g Express Edition (Universal) のRPM をダウンロードし、インストールします。
サーバーのインストール手順は こちら を参照します。
* Oracle Enterprise Edition を利用した場合は、コンテンツ CentOS5上のOracle 10g インストール を参照します。
クライアントは公式ページから、oracle-xe-client-10.2.0.1-1.0.i386.rpm をダウンロードしてインストールします。すると、/usr/lib/oracle/xe/app/oracle/product/10.2.0 /client/scripts/runsqlplus.sh から、Sqlplusを起動出来ます。また、tnsnames.ora を作成すると、接続文字列を利用できますので、便利です。tnsnames.ora の作成について、コンテンツ Vista Home上のOracle10g client インストール を 参照します。tnsnames.ora を利用するには、TNS_ADMIN環境変数を指定します。/usr/lib/oracle/xe/app/oracle/product/10.2.0 /client/scripts/sqlplus.sh に以下の2行を「sqlplus /nolog」の一行の前に追加します。
export TNS_ADMIN
また、こちら から、Oracle Sql Develop をダウンロードし、GUIのSql 開発環境もできますので、お薦めます。
- テーブル作成
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/scripts/runsqlplus.sh を実行してsqlplus を起動し、sys ユーザでログインします。本番専用表領域を作成することで、運用をより容易に行います。
create tablespace tbs_product datafile ’/usr/lib/oracle/xe/oradata XE/tbs_product.dbf’ size 100M extent management local autoallocate;
本番用ユーザを作成します。
temporary tablespace temp quota unlimited on tbs_product;
grant connect to user_product;
grant resource to user_product;
開発用DBと本番DBは同じサーバー上にある場合、開発用ユーザを作成します。
temporary tablespace temp quota unlimited on users;
grant connect to user_develop;
grant resource to user_develop;
最後は 本番用ユーザでログインして、テーブル作成などを行います。
connect user_product/your_password@xe;
- バックアップ
Oracle は色んなベックアップの方法を提供しています、中にはRMANの様な高機能ユーティリティも存在しますが、Oracle XE は規模の小さいシステムにしか使わないでしょう、ですので、最も簡単なやり方で行っています。Data Pump (expdp) を使って論理バックアップを利用しています。
バックアップ先フォルダ(/usr/lib/oracle/xe/oradata/dmp_dir1)をOracleに登録します。
SQL> create directory dmp_dir1 as ’/usr/lib/oracle/xe/oradata/dmp_dir1’;
SQL>
SQL> grant read,write on directory dmp_dir1 to user_product;
SQL>
SQL> select directory_name,directory_path from dba_directories
2 where directory_name = ‘DMP_DIR1’;
DIRECTORY_NAME DIRECTORY_PATH
———————– ————————————-
DMP_DIR1 /usr/lib/oracle/xe/oradata/dmp_dir1
バックアップ・スクリプトを作成し、xe-backup.sh として保存します。
# oracle env
ORA_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
ORA_OWNER=oracle
export ORACLE_HOME=$ORA_HOME
# バックアップ先ディレクトリ
BACKDIR=/usr/lib/oracle/xe/oradata/dmp_dir1
USERID=user_product
USERPASS=your_password
# バックアップ先ディレクトリ再作成
rm -rf $BACKDIR
mkdir -p $BACKDIR
chown $ORA_OWNER:dba $BACKDIR
su - $ORA_OWNER -c "$ORA_HOME/bin/expdp $USERID/$USERPASS SCHEMAS=your_schema DUMPFILE=dmp_dir1:your_schema.dmp
LOGFILE=dmp_dir1:your_schema_exp.log"
バックアップ定期的に自動実行します。
00 05 * * * /uprush/xe-backup.sh





