Oracle Database プラガブル・データベースを作成する

Oracle Database プラガブル・データベースを作成する

Oracle Databaseで、プラガブル・データベースを作成する手順を記述してます。「CREATE PLUGGABLE DATABASE」で作成するプラガブルDB名などを指定します。ここでは作成して起動してから接続するまでの手順を記述してます。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition

手順

プラガブル・データベースを作成するには、「CREATE PLUGGABLE DATABASE」を使用します。

CREATE PLUGGABLE DATABASE プラガブルDB名 ADMIN USER ユーザー名
IDENTIFIED BY パスワード
FILE_NAME_CONVERT =
 ('C:\APP\TESTUSER\PRODUCT\21C\ORADATA\XE\PDBSEED\', 'C:\APP\TESTUSER\PRODUCT\21C\ORADATA\XE\任意の名前\');

実際に、SYSBA権限でログインして「SAMPLEPDB」という名前で作成してみます。

> sqlplus / as sysdba

SQL> CREATE PLUGGABLE DATABASE SAMPLEPDB ADMIN USER testuser 
IDENTIFIED BY pwd 
FILE_NAME_CONVERT = ('C:\APP\TESTUSER\PRODUCT\21C\ORADATA\XE\PDBSEED\', 'C:\APP\TESTUSER\PRODUCT\21C\ORADATA\XE\TEST\');

プラガブル・データベースが作成されました。

確認してみます。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 XEPDB1                         READ WRITE NO
         4 SAMPLEPDB                      MOUNTED

作成されていることが確認できます。

プラガブル・データベース起動

作成した「プラガブル・データベース」を起動してみます。

SQL> alter pluggable database SAMPLEPDB open;

プラガブル・データベースが変更されました。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 XEPDB1                         READ WRITE NO
         4 SAMPLEPDB                      READ WRITE NO

起動できていることが確認できます。

自動起動に設定する場合は、以下を実行します。

SQL> alter pluggable database SAMPLEPDB save state;

プラガブル・データベースが変更されました。

SQL*Plusからプラガブル・データベース接続

SQL*Plusから接続するには
「”C:\app\ユーザー名\product\21c\homes\OraDB21Home1\network\admin\tnsnames.ora”」
に以下を追加します。

※「hoge.lan」はホスト名を入力して下さい。ここでは作成した「SAMPLEPDB」を使用した例となってます。

SAMPLEPDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = hoge.lan)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = SAMPLEPDB)
  )
)

「connect」を付与します。

> sqlplus / as sysdba

SQL> alter session set container = SAMPLEPDB;

セッションが変更されました。

SQL> grant connect to testuser;

権限付与が成功しました。

SQL*Plusから接続します。ユーザー名とパスワードを使用してログインします。

> sqlplus testuser/pwd@SAMPLEPDB

SQL*Plus: Release 21.0.0.0.0 - Production on 火 1月 11 17:39:40 2022
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>

ログインできることが確認できます。