【DB】oracleDatabase無料で利用可能な18cExpressEdition(XE)を導入方法

sql

OracleDatabase無料で利用可能な18cExpressEdition(XE)を導入する方法

DBダウンロード

まずは、18cExpressEdition(XE)のダウンロードを行います。

Oracleのダウンロードページからダウンロードします。

oracle18cXE

適当な場所にZipファイルをダウンロードする。

OracleXE184_Win64.zip

18cxe_zip_file

適当な場所にzipファイルを解凍する

18cxe_file

フォルダの中身は以下のようなファイルが入っている

18cxe_file_exe_info

「setup.exe」実行ファイルをダブルクリックで開く。

18cxe_setup

インストールウィザード画面がひらくので、次へと進んでいくと、インストール完了します。

18xe-01

インストール完了画面

oraclexe_install_end

oraclexe_install_end

注意点

※すでにOraceldatabese11gExpressEditionをインストールしている方は、まず11gXEをアンインストールしないと18XEはインストールできませんでした。

oracle11gxe

ちなみに11gXEがインストールされてる状態で、18XEをインストールしてみると、

18xe-03

「このマシンにはすでにOracleDatabase Express Editionサービスが存在しています」

と表示されて、インストールできません。

18XE起動

インストールできたら、今度は、起動してみます。

18xe_installed

SQL Plusを選択して起動させます。

sql_plus_18xe

まずは、管理者DBAでDBに接続します。

ありがちなパスワードエラーが起きた時のキャプチャです。sql_plus_18xe_dba_error

管理者DBAでログインするときは、

ユーザー名:sys

パスワード:as sysdba

でログインできます。

sql_plus_18xe_dba_sysdba_login

ログインできたら、次にユーザーを作成しましょう。

ユーザー作成

SQL文のCREATE USERでクエリーを作成します。

例えば、ユーザー名をextralabにして、パスワードをlab1291にするとSQL文は、下記の通りになります。

createuser_error

あれっ?ユーザー作成がエラーでできない。。。

ググったところ。Oracle11g2からOracle12cになったところで、DB(データベース)の持ち方が変わったみたいです。

知りませんでした。

Oracle12c以降からは、親DBの下に子DBが作られる仕様になっているみたいです。

SYSDBA権限でログインするとCDB(親DB)にログインしてるみたいで、そこからPDB(子DB)のユーザー作成は作成できないようです。なので、上記のORA-65096のエラーメッセージが出てきたみたいです。

対処方法

show con_name;を叩きセッション名を確認します。CDBになっていることを確認。

show_con_name

セッションを変更する。 alter session set container = XEPDB1; (18cXEをインストール完了した画面にプラガブルDB名が明記してあるのでそのDB名を入れる。)今回は、「XEPDB1」

session

変更されたのを確認します。

session_after

XEPDB1になっています。

これで、ユーザー作成ができるようになりました。

CREATE USER extralab IDENTIFIED BY “lab1291”;

user_create_OK

権限付与

GRANT ALL PRIVILEGES TO extralab;

grant

GRANT文でユーザーが操作できる権限を付与してあげる。細かく設定できるので、ここでは割愛させて下さい。

詳細を知りたい方は、こちらのページを参照して下さい。

 

GUI

GUIでデータベースを簡単に操作できるOracleSQLDeveloperを活用しよう。

Oracleのダウンロードページからダウンロードできる。

C:\app\product\18.0.0\dbhomeXE\network\admin\tnsnames.ora

のファイルを編集する。

CDB&PDB

まずは、CDBの接続を行う。

 

次に、PDB(プラガブル・データベース)の作成を行う。

dba_pdb_select pdb_create_sample

設定値:

データベース名: NEW_PDB(任意の名前を入力します)
管理名:Admin(任意のPDB管理ユーザーの名前を入力します)
管理パスワード:任意のパスワードを入力します
記憶域: 無制限を指定します。PDB毎に使用する領域を制限できます。

「適用」ボタンをクリックして作成を実行します。

PDBのNEW_PDBが作成されました。

created_pdb_status

このままでは、まだPDBはOpenしていないようなので、状態の変更を行いDatabaseをOpen状態にします。

status_change_before

NEW_PDBを右クリックして状態の変更を選択する。

状態のオプション:READ WRITE

に選択して適用を実行すると、OPENになるはず。

SQL plusで状態の変更を行う方法もある。

SYSでログインして、

show pdbs

NEW_PDBがOPEN MODE:MOUNTED状態だったので、

alter pluggable database NEW_PDB open;

でOPEN MODE:READ WRITEに変更できました。

pluggable_database_open

上記画像で確認できます。

PDBテーブル作成

あとは、PDBでSQL文を実行すれば、テーブル等が作成できる。

create tale

create table a_product (id number, name VARCHAR2(20), data1 VARCHAR2(30), data2 VARCHAR2(30));

createtable1

 

参考ページ

oracle database 18c リファレンス