こんにちは! 健史です。
ORACLE 無償版をインストールしたけど、思うように使えない!とあきらめている方、おりませんか。
手順は、数回、アンインストールとインストールして確認しています。
OracleXEのバージョンは、2023年4月時点で最新の「21c」での手順です。
手順を確立する上で、ハマったのが以下の2つです。
4.SQL-DEVLOPERのの初期設定
[SID(I)]が選択されていますが[サービス名(E)]に選択を変更し、「XEPDB1」と入力します。
このために何度アンインストールしたことか・・・
ORACLE無償版のダウンロードとインストール
ダウンロード
「ORACLE 無償版 ダウンロード」で検索し、ダウンロードします。
インストール
インストール先は、新規に作成したフォルダ[C:\oracle]としています。
パスワードは、[orapass]を設定しています。
ともに好みに合わせて変更して頂ければと思います。
[C:\oracle]を作成しました。
ダウンロードしたファイルをダブルクリックし、解凍します。
[setup.exe]をダブルクリックして、実行します。
[oraadmin]と入力しています。
ORACLE無償版の初期設定
初期設定はコマンドプロントから以下を実行するのみです。
作成するユーザID・パスワードはともに[user01]としています。
sqlplus sys/orapass@XE as sysdba alter session set container = XEPDB1; exit sqlplus sys/oraadmin@//localhost:1521/XEPDB1 as sysdba CREATE USER user01 IDENTIFIED BY user01 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ; grant connect to user01; grant resource to user01; grant unlimited tablespace to user01; exit
参考までに実行結果を載せます。
C:\>sqlplus sys/orapass@XE as sysdba SQL*Plus: Release 21.0.0.0.0 - Production on 土 4月 8 15:01:11 2023 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> alter session set container = XEPDB1; セッションが変更されました。 SQL> exit Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0との接続が切断されました。 C:\>sqlplus sys/oraadmin@//localhost:1521/XEPDB1 as sysdba SQL*Plus: Release 21.0.0.0.0 - Production on 土 4月 8 15:02:25 2023 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> CREATE USER user01 2 IDENTIFIED BY user01 3 DEFAULT TABLESPACE USERS 4 TEMPORARY TABLESPACE TEMP 5 PROFILE DEFAULT 6 ; ユーザーが作成されました。 SQL> grant connect to user01; 権限付与が成功しました。 SQL> grant resource to user01; 権限付与が成功しました。 SQL> grant unlimited tablespace to user01; 権限付与が成功しました。 SQL> exit Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0との接続が切断されました。 C:\>
SQL DEVLOPERのダウンロードと解凍
SQL DEVLOPERをダウンロードするには、「Oracleプロファイル」といって、いわゆるアカウントを作成しておく必要があります。
会社名を登録しても、会社に連絡があったりすることは無いようです。
仮にあってもやましいことをしているわけではないし、自己啓発のためにやっているのですから、問題はありません。
学生の方や個人事業主の方などは、SELFなどと入力すればよいようです。
それでも抵抗があるようでしたら「A5:SQL Mk-2」などのフリーツールを使って頂ければと思います。
「ORACLE SQL DEVLOPER ダウンロード」で検索し、ダウンロードします。
解凍したフォルダを[右クリック]-[コピー]して、配置したいフォルダに[貼り付け]します。
当記事では[ダウンロード]フォルダにコピーしました。
SQL-DEVLOPERのの初期設定
この記事のために、一度配置した[sqldevloper]フォルダを削除し、再度ダウンロードと解凍して起動したのですが、最初に設定した情報が残っていました。
一度設定した内容はレジストリかどこかに保存されているようで、削除して違うフォルダに解凍したものをコピーしても残るようです。
この記事のために設定した内容を削除し、初期状態に戻したつもりですが、初めての方でこの記事の内容と違っていたらごめんなさい。
ということを前提に手順を進めます。
[sqldevloer.exe]を起動します。ショートカットを作成しデスクトップに置いておくと便利です。
「+」をクリックするか、[Oracle接続]を右クリックし[接続の作成(A)]を選択します。以下は後者ですが、見にくいので拡大版を載せます。
[Name]、[ユーザ名(U][パスワード(P)]を入力します。
[SID(I)]が選択されていますが[サービス名(E)]に選択を変更し、「XEPDB1」と入力します。
そして[テスト(T)]をクリックして、[ステータス]に「成功」が表示されればOKです。
ここで[接続(O)]をクリックして起動してもよいですが、いったん画面を閉じて再起動しています。
再起動後に上記で[Name]設定したDBをクリックします。
[ユーザ名(U][パスワード(P)]を入力し、[OK]をクリックすると起動します。
表を作成してみる
CREATE文を入力し[スクリプトの実行(F5)]をクリックします。
このCREATE文は、一度作成したものをDDL生成ツール[SQL]で作成したものをバックアップしておいたものです。そのため、細かい設定が記述されています。
DDL生成ツール[SQL]は2つ下のハードコピーの赤枠で囲った部分です。
左ペインの[表(フィルタ対象)]をクリックすると作成したテーブルが表示されます。
[データ]に切り替えました。
補足:OracleXE-21Cのデータベースの構成
Oracle12以降、オラクルは大きく3つに分類されたDB構成になっています。
1.CDB$ROOT・・・コンテナDBと言われ、ここを指定してテーブルなど作成できない
2.PDB$SEED・・・プラガブルDB(PDB)と言われ、ここを指定してテーブルなど作成できない
3.XEPDB1・・・・プラガブルDB(PDB)と言われ、ここが使えるDBで、テーブルなど自由に作成できる
3つの物理的な関係は、「[1.]の器の中に[2.][3.]がある・作られる」です。
理解する上では「3つのDBがある」との見方もありです。※1
OracleXE-21Cをインストールすると、[1.][2.]に加え[3.]も作られます。
(物理的な関係からの説明:[1.]の器が作られ、その器のなかに[2.][3.]が作られる)
正しくは「テーブルなど自由に作成できるプラガブルDB(PDB)の1つが、[XEPDB1]という名称で作成されている」です。
そして、テーブルなど自由に作成できるプラガブルDB(PDB)は、増やすことができます。
XEPDB2とか、GYOUMU、KEIRI、SEISAN、HANBAIとか。
※1:なので、増やすことによって、3つ以上のDBにすることができます、なることがあります。
[1.][2.][3.]があることを確認してみましょう。
C:\>sqlplus sys/oraadmin@XE as sysdba SQL*Plus: Release 21.0.0.0.0 - Production on 土 4月 22 03:53:27 2023 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> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 XEPDB1 READ WRITE NO SQL>
[show con_name]でコンテナDB、[show pdbs]で2つのプラガブルDBを確認できました。
そして、アクセスできる、SQL文などが使えるのは、1つのDBです。
インストール直後は、[1.CDB$ROOT:コンテナDB]がアクセス可能になっていて、[3.XEPDB1:プラガブルDB(PDB)]にアクセスするためには、切り替えが必要です。
C:\>sqlplus sys/orapass@XE as sysdba SQL*Plus: Release 21.0.0.0.0 - Production on 土 4月 8 15:01:11 2023 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> alter session set container = XEPDB1; セッションが変更されました。
[3.XEPDB1:プラガブルDB(PDB)]から[1.CDB$ROOT:コンテナDB]への切り替えです。
SQL> alter session set container = CDB$ROOT;
「プラガブルDB」の語源は、電源をとるブラグに見立て「コンテナに接続できるDB」のようです。ですから増やすこともできます。
上記のことをキチンと理解していなかったため、そして基本を守っていなかったために、SQL-DEVLOPERを使えず、ネットで検索し間違ったこと:自由に使えるPDBがあるのに「作成しなければならないのかなぁ?」なんてことをしていました。
Oracle12のときから名前は違っていたようですが、インストールすればプラガブルDB(PDB)は作られていたようです。
繰り返します。
OracleXE-21Cでもインストールすれば、自由に使えるプラガブルDB(PDB):XEPDB1が作られています。
最後に
想定どおり動作するようになるまで、調査と試行錯誤を何度も繰り返しました。
結果的に、初期設定では数分で済む、とても少ない工程で使用できるようになりました。
応用情報処理技術者試験の午後問「データベース」対策、及び、現場で疑問に思っていたこと、「こういうこと、できないのかな?」といったこともあり、導入してみました。
SQL-DEVLOPERはObjecdtBrowserには劣りますが、幾つか使ったツールに比べ最も近しいと思います。
コメント