Windows11Proで無料で使用できるOracle Database Express Edition 21cのインストール方法

Oracle

Oracle Database Express Edition(以下Oracle Database XE)は、Oracle Database Enterprise Editionをベースに作られたOracle Database Editionの一種です。以前のバージョンにはOracle Database Express Edition 18cがありました。この記事でインストールするバージョンは、マルチテナントアーキテクチャ(multitenant architecture)でのみインストールされます。

ライセンス解釈(無料使用?)

Oracle Database Express Editionは支援・教育の目的であれば無料で利用可能です。しかし、機能やパフォーマンスに制限があり、パッチは提供されず、技術サポートも受けることができません。ライセンスに関する詳細は、Oracle Database Express Editionのライセンス公式サイトを参照してください。

リソース制限

使用可能なリソースの最大値は以下の通りです。詳細はこちらを参照してください。

  • 2 CPUスレッド
  • 論理環境ごとに1つのインスタンス
  • 2GB RAM
  • 使用者データは最大12GBまで

詳細オプションと仕様

  • Multitenant PDBは最大3つまで作成可能です。
  • Oracle SQL Developerを使用できます。
  • パーティション機能が使用できます。
  • データベース作成前に変更可能なデータベース文字セットはAL32UTF8です。Oracle ClientでUTF-8以外の文字コードをアプリケーションで使用したい場合、NLS_LANGのCharacter set設定で文字変換が可能なため、XEをインストールしても問題ありません。
  • Database In-memoryの基本機能が使用可能です。
  • セキュリティ関連機能としては、TDE(Transparent Data Encryption)を含むほとんどの機能が使用可能です。
  • Spatial and Graphが使用可能です。
  • 地理データベースやグラフデータベースとして使用できます。
  • 圧縮関連機能のほとんどが使用可能です。
  • Advanced Analyticsが使用可能です。
  • 機械学習やデータマイニング、R言語でアクセス可能です。

使用不可能な内容は以下の通りです。

  • 並列処理関連の機能は使用できません。
  • Enterprise Managerオプションパックは使用できません。
  • RAT(Real Application Testing)も使用できません。
  • EM Expressは解除可能であれば使用できますが、初期はローカルでのアクセスが制限されています。
  • RAC(Real Application Clusters)、DataGuard、Shardingなど複数ノードを連携させる機能は使用できません。
  • また、GoldenGateも使用できません。
  • APEX(Oracle Application Express)とORDS(Oracle REST Data Services)は含まれていませんが、別途ダウンロードして使用可能です。

Windows版インストール

作業環境

  • エディション: Windows 11 Pro
  • バージョン: 23H2
  • インストール日: 2024年3月21日
  • OSビルド: 22631.3296
  • 体験: Windows Feature Experience Pack 1000.22687.1000.0

XEダウンロード

ダウンロードにはOracleアカウントが必要する場合があります。アカウントがない場合は、アカウント作成から始めてください。

Oracle Database 21c Express Edition for Windows x64を以下のサイトでダウンロードします。ダウンロードされるファイルはOracleXE213_Win64.zipです。

参照)以下のリンクは、最新バージョンのサイトURLであるため、バージョンが更新される場合、別のバージョンのインストールページになる可能性があります。

Oracle Database Express Edition (XE) Downloads | Oracle 日本
Oracle Database Express Edition (XE) Downloads

公式マニュアルは以下を参照してください。

Installation Guide

XE setup.exeコマンドでインストール

  • OracleXE213_Win64.zipを C:\temp\OracleXE213_Win64に展開します。
  • setup.exeを実行します。

以下の画面のよう、「インストールの準備をしています。」というメッセージを表示し、次の画面に進みます。

[Oracle Database 21c Express Edition용 InstallShield ウィザードへようこそ] 画面で [次へ(N)]ボタンを押して次の画面に進みます。

[使用許諾条項] 画面で [使用許諾条項を受け入れます(A)]を選び、[次へ(N)]ボタンを押して次の画面に進みます。

[宛先フォルダ] 画面で [変更(C)…]ボタンを押し、 [Oracle Database 21c Express Editionのインストール先:]を C:\app\product\21.0.0\ に変更します。そのあと、[次へ(N)]ボタンを押して次の画面に進みます。

[Oracle Database情報]画面で「SYS、SYSTEM、PDBADMIN」のパスワードを「manager」に指定します。そのあと、[次へ(N)]ボタンを押して次の画面に進みます。

[サマリー]画面で、指定した宛先フォルダなどを確認して問題がなければ [インストール(I)]ボタンを押して次の画面に進みます。

[Oracle Database 21c Express Editionをインストール中] 進行画面が表示され、自動的に次へ進みます。

インストール中に「Java(TM) Platform SE binary」の通信許可するための [Windows セキュリティの重要な警告]画面が表示された場合、[プライベートネットワーク(ホームネットワークや社内ネットワークなど)(R)]を選択し、[アクセスを許可する(A)]ボタンを押して次の画面に進みます。

[Oracle Database 21c Express Editionをインストール中]が完了されると自動的に次の画面に進むので完了するまで待ちます。

インストールが正常的に終わると次のように [Oracle Database正常にインストールされました。] メッセージが表示されたインストール終了画面が表示されます。[完了(F)]ボタンを押して終了します。

  • localhost:1521はマルチテナントコンテナデータベース(CDB)の RootコンテナであるCDB$ROOTに接続します。
  • localhost:1521/XEPDB1はプラグイン可能なデータベース(PDB)に接続します。

環境変数の確認

Oracle Database 21c Express Edition용 InstallShield ウィザードは自動的に必要な環境変数を設定します。これを「regedit.exe」コマンドで確認すると以下になります。

[WindowsキーWindows Key] + [R] を押して開いた「ファイル名を指定して実行」ダイヤログに”regedit”を入力して [レジストリ エディター] を開きます。

[コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB21Home1] を選択すると右に環境変数「NLS_LANG、ORACLE_HOME、ORACLE_SID、ORACLE_BASE」が設定されていることが確認できます。

コマンドプロンプトで環境変数「%PATH%」の値をechoコマンドで見ると以下のように「C:\app\product\21.0.0\dbhomeXE\bin;」が追加されたことが確認できます。

データベースのサービス確認

[WindowsキーWindows Key] + [R] を押して開いた「ファイル名を指定して実行」ダイヤログに”service.msc”を入力して [サービス] を開きます。

[サービス]のリストで「OracleOraDB21Home1TNSListener、OracleServiceXE」が実行中であることを確認します。

メニュー登録の確認

[WindowsキーWindows Key] – [すべてのアプリ] – [Oracle – OraDB21Home1]を選択すると以下のように登録されているOracle Menuが確認できます。

sqlnet.oraのデフォルト値を確認

C:\app\product\21.0.0\homes\OraDB21Home1\network\admin\sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

listener.oraの修正

デフォルト設定値が「HOST=PC-A.localdomain」である場合はIPアドレスが変わるとサービス起動ができなくなったり、リスナーに問題が発生する可能性があります。そのため、listener.oraファイルを以下のように修正します。PC-Aは各PCのホスト名です。

C:\app\product\21.0.0\homes\OraDB21Home1\network\admin\listener.ora

修正前

...省略...
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = PC-A.localdomain)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

修正後

...省略...
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = PC-A)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

tnsnames.oraの修正

デフォルト設定値が「HOST=PC-A.localdomain」である場合はIPアドレスが変わるとサービス起動ができなくなったり、リスナーに問題が発生する可能性があります。そのため、tnsnames.oraファイルを以下のように修正します。PC-Aは各PCのホスト名です。

C:\app\product\21.0.0\homes\OraDB21Home1\network\admin\tnsnames.ora

修正前

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = PC-A.localdomain)(PORT = 1521))
...省略...
LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = PC-A.localdomain)(PORT = 1521))
...省略...

修正後

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = PC-A)(PORT = 1521))
...省略...
LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = PC-A)(PORT = 1521))
...省略...

「OracleOraDB21Home1TNSListener, OracleServiceX」Eを再起動します。

Listenerの確認

以下のコマンドでOracle Listenerのステータスを確認します。

C:\> lsnrctl status
LSNRCTL for 64-bit Windows: Version 21.0.0.0.0 - Production on 12-5月 -2024 12:11:31
Copyright (c) 1991, 2021, Oracle.  All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PC-A)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for 64-bit Windows: Version 21.0.0.0.0 - Production
開始日                    12-5月 -2024 10:25:26
稼働時間                  0 日 1 時間 46 分 4 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
デフォルト・サービス           XE
パラメータ・ファイル      C:\app\product\21.0.0\homes\OraDB21Home1\network\admin\listener.ora
ログ・ファイル            C:\app\product\21.0.0\diag\tnslsnr\PC-A\listener\alert\log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=PC-A)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=127.0.0.1)(PORT=5500))(Security=(my_wallet_directory=C:\APP\PRODUCT\21.0.0\admin\XE\xdb_wallet))(Presentation=HTTP)(Session=RAW))
サービスのサマリー...
サービス"086af5c83467463286bfa532a048ec31"には、1件のインスタンスがあります。
  インスタンス"xe"、状態READYには、このサービスに対する2件のハンドラがあります...
サービス"CLRExtProc"には、1件のインスタンスがあります。
  インスタンス"CLRExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"XE"には、1件のインスタンスがあります。
  インスタンス"xe"、状態READYには、このサービスに対する2件のハンドラがあります...
サービス"XEXDB"には、1件のインスタンスがあります。
  インスタンス"xe"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"xepdb1"には、1件のインスタンスがあります。
  インスタンス"xe"、状態READYには、このサービスに対する2件のハンドラがあります...
コマンドは正常に終了しました。

もし、 「“XE”・“XEXDB”・”xepdb1″には、1件のインスタンスがあります。」のメッセージが表示されない場合、今までの設定中問題があった可能性があります。メッセージが表示されるように設定をもう一回確認してください。

sqlplus.exeコマンドでローカル接続確認

コマンドプロンプトで sqlplus system/manager を入力し、接続できるかを確認します。接続に問題がなければ以下のようなメッセージが表示されます。

C:\> sqlplus system/manager
SQL*Plus: Release 21.0.0.0.0 - Production on 日 5月 12 12:55:29 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.
最終正常ログイン時間: 金 5月  10 2024 17:37:04 +09:00
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。
SQL>

外部マシンから sqlplus.exe でリモート接続の確認

外部マシンから sqlplus コマンドでリモート接続をすると次のようにエラーが発生します。

C:\> sqlplus system/manager@192.168.220.128/xe
SQL*Plus: Release 12.2.0.1.0 Production on Sun Sep 19 17:28:01 2021
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
ERROR:
ORA-12170: TNS: 接続タイムアウトが発生しました。
ユーザー名を入力してください:

“ORA-12170: TNS: 接続タイムアウトが発生しました。 エラーを解決するためには以下のようにWindows Defender ファイヤーウォールで Oracle Listener Port 1521を許可します。

[コントロールパネル\すべてのコントロール パネル項目]で 「Windows Defender ファイアウォール」 を押し、[コントロール パネル\すべてのコントロール パネル項目\Windows Defender ファイアウォール]設定画面を開きます。

そして左メニューで [詳細設定] を押し、 [セキュリティーが強化された Windows Defender ファイヤーウォール] を開きます。

[セキュリティーが強化された Windows Defender ファイヤーウォール] の左側で「受信の規則」を押し、右側の [新しい規則…]を押して [新規の受信の規則ウィザード]を開きます。

[新規の受信の規則ウィザード]の [ステップ:規則の種類]で [ポート(O)]を選択し、 [次へ(N)]ボタンを押してください。

[ステップ:プロトコルおよびポート]で [TCP(T)]と[特定のローカル ポート(S)]を選択し、ポート番号「1521」を入力して [次へ(N)]ボタンを押してください。

[ステップ:操作]で [接続を許可する(A)]を選択し、[次へ(N)]ボタンを押してください。

[ステップ:プロフィール]で [ドメイン(D)], [プライベート(P)], [パブリック(U)] をすべてチェックし、[次へ(N)]ボタンを押してください。

[ステップ:名前]で [名前(N)]と[説明(オプション)(D)]を入力し、[完了(F)]ボタンを押してください。

[セキュリティーが強化された Windows Defender ファイヤーウォール]の受信の規則を右クリックして[最新の情報に更新]を押すと追加した受信の規則が確認できます。

Windows Defender ファイヤーウォールに Oracle Listener Port 1521を許可して、次のように外部マシンから sqlplusコマンドでリモート接続できることを確認できます。

C:\>sqlplus system/manager@192.168.220.128/xe
SQL*Plus: Release 12.2.0.1.0 Production on 일 9월 19 18:24:28 2021
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
最終正常ログイン時間: 日 5月  12 2024 13:28:07 +09:00
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。

XE CDB$ROOT コンテナデータベース(CDB)へ接続

以下のようにコンテナデータベース(CDB)の Rootコンテナ「CDB$ROOT」に接続します。そしてデータベースで使用可能なサービスをv$servicesから表示します。

C:\> sqlplus / as sysdba
    COLUMN name FORMAT A15
    COLUMN pdb FORMAT A10
    SELECT name, pdb FROM v$services;
NAME            PDB
--------------- ----------
xeXDB           CDB$ROOT
SYS$BACKGROUND  CDB$ROOT
SYS$USERS       CDB$ROOT
xe              CDB$ROOT
xepdb1          XEPDB1
SQL>

「show con_name」および「show con_id」コマンドで現在のコンテナ名とIDを表示します。

SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT

SQL> show con_id
CON_ID
------------------------------
1

現在のコンテナがCDBの場合、show pdbsコマンドですべてのプラグインできるデータベース(PDB)を表示します。 PDB$SEEDは、新規のPDBを作成するためのテンプレートPDBです。 現在使用できるプラグインコンテナはXEPDB1です。21c Express Editionバージョンはあと2つ作ることができます。

SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 XEPDB1                         READ WRITE NO

XE CDB$ROOT コンテナデータベース(CDB)の基本情報

XE CDB$ROOT Oracle Default ユーザー確認

次のコマンドで、基本的に作成されたOracleユーザー名、アカウントの状態、適用Profileを確認することができます。

C:\> sqlplus / as sysdba
SQL*Plus: Release 21.0.0.0.0 - Production on 日 5月 12 16:28:09 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。
SQL> COLUMN username format A23
     COLUMN account_status format A17
     COLUMN profile FORMAT A16
     SET PAGESIZE 100
     SELECT username,account_status,profile FROM dba_users;
USERNAME                ACCOUNT_STATUS    PROFILE
----------------------- ----------------- ----------------
SYS                     OPEN              DEFAULT
SYSTEM                  OPEN              DEFAULT
... 省略 ...
SYSDG                   LOCKED            DEFAULT
ORDSYS                  LOCKED            DEFAULT
37行が選択されました。
SQL>

XE CDB$ROOT Oracleユーザーのdefault profile 設定値を確認

次のSQL文でOracleユーザのdefault profile設定値を確認することができます。次に、ログイン失敗許容回数(FAILED_LOGIN_ATTEMPTS)に対するそれぞれのプロファイル設定値を確認しています。

C:\> sqlplus / as sysdba
     COLUMN profile FORMAT A16
     COLUMN resource_type FORMAT A13
     COLUMN limit FORMAT A6
     SELECT profile,resource_type,limit 
       FROM dba_profiles 
      WHERE resource_name='FAILED_LOGIN_ATTEMPTS';
PROFILE          RESOURCE_TYPE LIMIT
---------------- ------------- ------
DEFAULT          PASSWORD      10
ORA_CIS_PROFILE  PASSWORD      5
ORA_STIG_PROFILE PASSWORD      3

XE CDB$ROOT Oracle 初期パラメータ情報

次のSQL文でOracle XEインスタンスの作成直後の初期パラメータ情報を確認することができます。

C:\> sqlplus / as sysdba
     spool oracle21c_xe_v_parameter.txt
     set linesize 146
     SET PAGESIZE 500
     COLUMN value FORMAT A95
     COLUMN name FORMAT A45
     select name , value FROM v$parameter;

NAME                                VALUE
----------------------------------- ------------
lock_name_space
processes                                     480
sessions                                      744
timed_statistics                              TRUE
timed_os_statistics                           0
... 省略 ...
pdb_template
shrd_dupl_table_refresh_rate                  60
multishard_query_data_consistency             strong
multishard_query_partial_results              not allowed
shard_queries_restricted_by_key               FALSE
native_blockchain_features
blockchain_table_max_no_drop
pmem_filestore
474行が選択されました。

SQL> spool off

XEPDB1 プラグインデータベース(PDB)に接続

localhost:1521/XEPDB1でプラグインデータベース(PDB)に接続します。ポート番号1521 は省略できます。

C:\> sqlplus /@localhost:1521/XEPDB1 as sysdba
     COLUMN name FORMAT A15
     COLUMN pdb FORMAT A10
     SELECT name, pdb FROM v$services;
NAME            PDB
--------------- ----------
xepdb1          XEPDB1
SQL>

show con_name」及び「show con_id」コマンドで現在のコンテナ名とIDを表示します。

SQL> show con_name
CON_NAME
------------------------------
XEPDB1

SQL> show con_id
CON_ID
------------------------------
3

現在のコンテナがPDBの場合、show pdbsコマンドでは現在のコンテナXEPDB1のみ表示されます。

SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 XEPDB1                         READ WRITE NO

XEPDB1 プラグインデータベース(PDB)の基本情報

sqlplus /@localhost:1521/XEPDB1 as sysdba 接続で上記のXEコンテナデータベース(CDB)の基本情報のようなSQL文を使用した場合の相違は以下の通りです。

XEPDB1 Default ユーザー確認

実行の結果、次のユーザーが追加で出力されます。

PDBADMIN                OPEN              DEFAULT
SYS$UMF                 EXPIRED & LOCKED  DEFAULT

XEPDB1 ユーザーのdefault profile設定値を確認

実行結果は XE CDB$ROOT コンテナデータベース(CDB)の結果値と同じです。

XEPDB1 初期パラメータ情報

次のパラメータ値のみ差があります。

XE CDB$ROOTコンテナデータベース(CDB)の場合

sga_target                                    1291845632
common_user_prefix                            C##

XEPDB1 ラグインデータベース(PDB)の場合

sga_target                                    0 
common_user_prefix

タイトルとURLをコピーしました