Oracle Database 18c Express Editionの紹介 

# Oracle Database Express Edition (XE)とは
Oracle Database Express Editionは、利用可能リソースや機能に制限を設けた形で無償で提供される、Oracle Databaseのエディションのひとつです。11g版のXEが提供されてから、バージョンをひとつ(12c)飛ばして、18cにて久々に提供が開始されました。
なお、以下の情報はマニュアルや製品情報ページの抜粋です。言い換えると、筆者自身はまだ動作確認していません。個別に確認した部分などをしばらく追記、変更していきます。


# XE 18cの基本仕様
- 従来と同様、無償です。ただし、従来と同様、サポートサービスとパッチは提供されません。
- 利用ライセンスの詳細については、[Oracle Technology Network Developer License Terms for Oracle Database Express Edition(英語)](https://www.oracle.com/technetwork/licenses/db18c-express-license-5137264.html)をご確認ください。
- 一番の目玉として、Enterprise Editionがベースになりました!!　ただし、Enterprise Editionのすべての機能が利用できるわけではありません(次項を参照)。
- 稼働リソースの制限は以下のとおりです。
    - 2スレッドまでのCPU
    - 2GBまでのRAM
    - 12GBまでのユーザーデータ


# 利用可能なデータベース・オプション、機能
詳細は[マニュアル(英語)](https://docs.oracle.com/en/database/oracle/oracle-database/18/xelic/licensing-information.html#GUID-3BD43E8F-53C3-42F0-BBBD-B743FD41F951)をご確認ください。以下は一部のみの紹介です。利用可能となっている機能も、細かい部分で非対応の機能があるのでご注意ください。

- Multitenantに関して、PDBを3つまで作成可能です。
- RAC(Real Application Clusters)やDataGuard, Shardingのような、複数ノードを連携させる機能は利用できません。なお、GoldenGateも利用不可です。
- Enterprise Managerのオプションパックは利用できません。RAT(Real Application Testing)も利用不可です。EM Expressは利用可能ですが、最初はローカルからのアクセスに制限されています(解除可能)。
- Database In-memoryは基本機能が利用可能です。2GBでインメモリ? という話はありますが。。。
- セキュリティ関係の機能はTDE(Transparent Data Encryption)をはじめ、大半の機能が利用可能です。
- パラレル処理関連機能は利用できません。
- Spatial and Graphは利用可能です。地理データベースとしてもグラフデータベースとしても利用可能です。
- パーティション機能は利用可能です。
- 圧縮関連の機能は大半の機能が利用可能です。
- Advanced Analyticsは利用可能です。機械学習やデータマイニング、R言語からのアクセスが可能です。
- APEX(Oracle Application Express)やORDS(Oracle REST Data Services)は同梱されていませんが、別途ダウンロードして利用することが可能です。
- Oracle SQL Developerから利用が可能です。
- データベースのキャラクタセットはAL32UTF8です(DB作成前に変更可能)。Oracle Clientでのキャラクタセット変換は利用できるので、SJISや日本語EUCなどUFT-8以外の文字コードをアプリケーションで利用したい場合でも、デフォルト設定のままでXEの利用は可能です。



# インストール要件
2018/10/22時点ではLinux x86–64版をRPM形式で提供しています。Windows版も提供予定です。
インストール可能ディストリビューションは[マニュアル(英語)](https://docs.oracle.com/en/database/oracle/oracle-database/18/ladbi/operating-system-checklist-for-oracle-database-installation-on-linux.html#GUID-E5C0A90E-7750-45D9-A8BC-C7319ED934F0)をご確認ください。CentOSのようなRHEL系列のディストリビューションでもご利用は可能です。
その他ソフトウェアの稼働要件は以下のとおりです。

- 他のエディション(SE2/EEなど)との共存は不可
- 最低1GB以上のRAM、推奨は2GB以上
- インストール先の領域として10GB以上のディスク容量
- 2GBないし4GB以上のスワップ領域
- 設定の確認、変更が必要なカーネルパラメータは[マニュアル(英語)](https://docs.oracle.com/en/database/oracle/oracle-database/18/xeinl/server-component-kernel-parameter-requirements.html)をご確認ください。実際にはインストールの過程でツールにより変更されますので、事前の影響確認目的でご確認ください。


# インストール手順
root権限が必要なのでsudoでroot権限で作業します。

```
$ sudo -s
```

###1. Database Preinstallation RPMをインストール
このRPMは、Oracle Databaseの稼働に必要なRPM類をインストールし、Oracle Databaseを起動できるようカーネルパラメータを変更します。パッケージは手順2のサイトからダウンロードすることも可能です。(Oracle Linuxの場合は自動的にインストールされます)

・Red Hat Enterprise Linux 6系の場合

```
# curl -o oracle-database-preinstall-18c-1.0-1.el6.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el6.x86_64.rpm
# yum -y localinstall oracle-database-preinstall-18c-1.0-1.el6.x86_64.rpm
```

・Red Hat Enterprise Linux 7系の場合

```
# curl -o oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
# yum -y localinstall oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
```

###2.XEのダウンロード
 [ダウンロードサイト](https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html)より、製品をダウンロードします。ライセンスアグリーメントの承諾の部分の直下の、「Oracle Database 18c Express Edition for Linux x64 Download」の部分です。

###3. XEをyumコマンドでインストール

```
# yum -y localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm
```

###4. 環境変数のセット
oraenvコマンドでOracle Database関連の環境変数を設定します。Oracle Databaseの環境変数の設定対象と方法をご存知の方は、oraenvコマンドを使用せず、ご自身で設定いただいていもかまいません。
XEではインスタンス名は「XE」固定です。ですので、環境変数ORACLE_SIDは「XE」を設定してください。環境変数ORACLE_HOMEは「/opt/oracle/product/18c/dbhomeXE」です。

```
$ export ORACLE_SID=XE 
$ export ORAENV_ASK=NO 
$ . /opt/oracle/product/18c/dbhomeXE/bin/oraenv
```

oraenvコマンド実施の際に聞かれる質問に答えていくと設定が完了します。


# DBの作成
rootユーザーで実施します。以下のコマンドを実施すると管理者のパスワードを聞いてきますので入力すると、DBとリスナーが作成されます。DB作成に関する設定(リスナーのポート番号やDBのキャラクタセットなど)を変更されたい方は/etc/sysconfig/oracle—xe–18c.confファイルを編集してから実施してください。設定の変更の詳細は[マニュアル](https://docs.oracle.com/en/database/oracle/oracle-database/18/xeinl/performing-silent-installation.html)をご確認ください。表示されたページの中央やや下のあたりに記載があります。

```
# /etc/init.d/oracle-xe-18c configure
```



# DBの起動、停止
起動や停止は以下のコマンドで実施します。SQL*Plusからのstartup, shutdownも可能です。rootユーザーで実施します。

・起動

```
# /etc/init.d/oracle-xe-18c start
```

・停止

```
# /etc/init.d/oracle-xe-18c stop
```

・再起動

```
# /etc/init.d/oracle-xe-18c restart
```

# 参考リンク

1.XEの製品情報(英語)
https://www.oracle.com/database/technologies/appdev/xe.html

2.XE発表のブログ(英語)
https://geraldonit.com/2018/10/20/oracle-database-18c-express-edition-is-generally-available/amp/?fbclid=IwAR2ttew1kFO5B7P4bPIGpcNm5ze9JU6PB4Kgdt7wy9e8ort_h4jV9YO4xY4

3.XEのサポート・コミュニティ(掲示板、英語)
https://community.oracle.com/community/groundbreakers/database/developer-tools/oracle_database_express_edition_xe

4.インストレーション・ガイド(英語)
https://docs.oracle.com/en/database/oracle/oracle-database/18/xeinl/installation-guide.html#GUID-31891F22-B1FA-4489-A1C5-195E6B3D89C8

5.ライセンス情報(英語)
https://docs.oracle.com/en/database/oracle/oracle-database/18/xelic/licensing-information.html

6.Oracle Database 18cのマニュアル(サイト閲覧、日本語)
https://docs.oracle.com/cd/E96517_01/index.html

7.Oracle Database 18cのマニュアル(ダウンロード、約1.1GB、日本語)
https://docs.oracle.com/cds/E96517_01.zip

8.[@shakiyam](https://qiita.com/shakiyam)さんによる、18c XEの簡易セットアップ記事(Vagrant + VirtualBox)
https://qiita.com/shakiyam/items/9bd74c08f2208346f19e
https://github.com/shakiyam/vagrant-oracle-database-xe-18c

9.18c XEのDocker Image
https://github.com/fuzziebrain/docker-oracle-xe

# 更新履歴
10/29 『参考リンク』の各リンクに番号を追加、リンク8, 9を追加
10/30 『DBの作成』の章を追加
10/30 『利用可能なデータベース・オプション、機能』にてキャラクタセット変更が可能な旨追記