🐥

30分でOracle Databaseを構築します!

2023/06/09に公開

表題ではOracle Databaseと記載しましたが、
本記事ではOracle VM VirtualBoxに構築する手順をご紹介します。

OTNからダウンロードできる VirtualBoxイメージ(ovaファイル)を
Oracle VM VirtualBoxにインポートするだけでOracle Databaseがさわれるようになります。

環境

Oracle Linux Server release 8.7
Oracle Database 23c

対象

・Oracle Dadabaseを初めてさわる方
・新卒でこれからDatabaseをさわる方
・手っ取りばやくOracle Database の勉強を始めたい方

手順

1,Oracle VM VirtualBoxをダウンロード

以下URLへ接続します。
https://www.oracle.com/virtualization/technologies/vm/downloads/virtualbox-downloads.html

例えば、Windowsの場合は以下赤枠をクリックします。

2,Oracle VM VirtualBoxをインストール

ダウンロードしたファイルをダブルクリック等で起動します。
特にカスタマイズしなくてよい場合は、「Next」または「Yes」で進んでください。

1.以下画面で「Next>」を押下します。

  1. 次の画面でもまた「Next>」を押下します。

  2. 「Yes」を押下します。

  3. 「Install」を押下します。

  4. インストールが開始されます。完了するまで待ちます。

6.インストール完了後、「Finish」を押下します。

  1. Oracle VM VitualBoxを起動します。
    以下画像は既にovaイメージのインポートまで完了した画面ですので、
    この時点では起動ができればOKです。

    これで、Oracle VM VitualBoxのインストールは完了です。

3, Oacle Database 23c Free - Developer Release VirtualBox Appliance の ovaイメージをダウンロード

次に、Oacle Database 23cを構築します。まずはダウンロードを実施します。

  1. 以下URLへ接続します。
    https://www.oracle.com/database/technologies/databaseappdev-vm.html

  2. 以下の「Oracle DB Developer VM」からダウンロードします。
    ダウンロードは少し時間がかかります。私の環境では約5分ほどかかりました。

4,Oracle VM VitualBoxへインポート

  1. Oracle VM VitualBoxの「ファイル」→「仮想アプライアンスのインポート(I)」を押下します。

2.「ファイル」からダウンロードしたOracle VM vitualBoxを選択して、「次へ(N)」を押下します。

3.「完了(F)」を押下します。

  1. 「同意する(A)」を押下します。

5.インポートが開始されます。こちらも少し時間がかかります。

6.インポートが完了後、仮想マシンを「起動」を押下します。

7.以下画面のように表示されれば起動が成功です!
でも、Oracleに接続できるようにするにはまだ設定が必要です。

5,sshで 仮想環境への接続

まずは、CDBにsqlplus接続してみます。
※CDB、PDBの説明は本記事では割愛します。

  1. Windows であればTeraterm等からOacle Database 23cへ接続が可能です。
    デフォルトでは、以下で接続が可能です。Teratermの「ホスト(T)」に「localhost:」
    ・ホスト名:localhost
    ・ポート番号:2222

2.ユーザ名とパスフレーズは以下を入力してください。
・ユーザ名(N):oracle
・パスフレーズ(p):oracle

  1. 仮想環境に接続できました。この時点でOS側は自由に触れるようになっています。
    続いて、CDB接続するために環境変数の設定を行います。
    以下は実行ログです。
    ※ORACLE_SIDは環境によって変わります。確認方法は後術します。
[oracle@localhost ~]$ export ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree
[oracle@localhost ~]$ export PATH=${PATH}:${ORACLE_HOME}/bin
[oracle@localhost ~]$ export ORACLE_SID=FREE
  1. sqlplus 接続をします。
[oracle@localhost ~]$sqlplus /nolog
SQL*Plus: Release 23.0.0.0.0 - Developer-Release on Fri Jun 9 03:59:12 2023
Version 23.2.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.

4.どのDBに接続したか確認するため、「show con_name;」を入力してみましょう。
「CDB$ROOT」が表示されればCDBに接続されていることが分かります。

SQL> CONNECT / AS SYSDBA
Connected.

SQL> SHOW CON_NAME;

CON_NAME
------------------------------
CDB$ROOT

  1. PDBの一覧を表示するため「show pdbs」入力します。
    「PDB$SEED」と「FREEPDB1」が存在していることが分かります。
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FREEPDB1                       READ WRITE NO
  1. 続いて「FREEPDB1」に切り替えます。
SQL> alter session set container =FREEPDB1;
Session altered.

SQL> show con_name
CON_NAME
------------------------------
FREEPDB1

「FREEPDB1」に接続できました。

6,OS認証でCDBにSYSで接続

この環境でのoracleユーザには、環境変数TWO_TASKが設定されているので解除(unset)します。

[oracle@localhost ~]$ unset TWO_TASK
[oracle@localhost ~]$ sqlplus /nolog

SQL> SHOW CON_NAME;

CON_NAME
------------------------------
CDB$ROOT
SQL> SELECT BANNER, BANNER_FULL FROM V$VERSION;

BANNER
--------------------------------------------------------------------------------
BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version 23.2.0.0.0


SQL> exit
Disconnected from Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version 23.2.0.0.0
[oracle@localhost ~]$
[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 23.0.0.0.0 - Developer-Release on Fri Jun 9 04:32:51 2023
Version 23.2.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.


Connected to:
Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version 23.2.0.0.0

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

OS認証「sqlplus / as sysdba」で接続できるようになりました。

tnsnames.oraの確認方法

tnsnames.oraがなんぞやっていう説明は本記事では割愛します。

[oracle@localhost ~]$ cat ${ORACLE_HOME}/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /opt/oracle/product/23c/dbhomeFree/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

FREE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
#      (SERVER = DEDICATED)
      (SERVER = SHARED)
      (SERVICE_NAME = FREE)
    )
  )

LISTENER_FREE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


FREEPDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = FREEPDB1)
    )
  )

参考

@ora_gonsuke777さんの記事を参考にさせていただきました。
ありがとうございました。
https://qiita.com/ora_gonsuke777/items/564471e460b2b58d8aa2

Discussion