Help us understand the problem. What is going on with this article?

Oracle CDB、PDBの操作

Oracle12c以降はCDB(グローバルデータベース)、PDB(プラガブル・データベース)の概念が追加となった。
CDB、PDBの操作を試した操作ログの内容を紹介します。

CDB、PDBのデータベース名

コンテナ データベース名
CDB ORCL
PDB ORCLPDB

1. CDBへ接続(OS認証)

C:\app\oracle>sqlplus /nolog

SQL*Plus: Release 18.0.0.0.0 - Production on  9 16 13:59:40 2019
Version 18.3.0.0.0

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

SQL> connect / as sysdba    -- OS認証で接続
接続されました。
SQL> select instance_name,status from v$instance;  -- インスタンスの確認

INSTANCE_NAME                    STATUS
-------------------------------- ------------------------
orcl                             OPEN

SQL> show con_name  -- 接続先の確認

CON_NAME
------------------------------
CDB$ROOT
SQL> disconnect  -- 切断
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0との接続が切断されました。
SQL>

2. CDBにローカル接続(パスワード認証)

SQL> connect system/password  --パスワード認証で接続
接続されました。
SQL> show con_name  -- 接続先の確認

CON_NAME
------------------------------
CDB$ROOT
SQL> disconnect  -- 切断
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0との接続が切断されました。
SQL>

3. PDBにリモート接続(パスワード認証)

SQL> connect system/password@localhost:1521/ORCLPDB  --パスワード認証(リモート)で接続
接続されました。
SQL> show con_name  -- 接続先の確認

CON_NAME
------------------------------
ORCLPDB
SQL> disconnect  -- 切断
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0との接続が切断されました。
SQL>

4. CDBにローカル接続(OS認証)後、PDBに接続

SQL> connect / as sysdba    -- OS認証で接続
接続されました。
SQL> show con_name  -- 接続先の確認

CON_NAME
------------------------------
CDB$ROOT
SQL> alter session set container=ORCLPDB;  -- PDBに接続

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

SQL> show con_name  -- 接続先の確認

CON_NAME
------------------------------
ORCLPDB
SQL>

5. PDBに接続後、CDBに接続

SQL> show con_name  -- 接続先の確認

CON_NAME
------------------------------
ORCLPDB
SQL> alter session set container=CDB$ROOT;  -- CDBに接続

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

SQL> show con_name  -- 接続先の確認

CON_NAME
------------------------------
CDB$ROOT
SQL>

6. PDB情報確認

SQL> show pdbs    -- PDB情報確認

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
SQL> select con_id,name,open_mode,restricted from v$pdbs;    -- PDB情報確認

    CON_ID NAME                            OPEN_MODE            RESTRI
---------- ------------------------------- -------------------- ------
         2 PDB$SEED                        READ ONLY            NO
         3 ORCLPDB                         READ WRITE           NO

SQL> select pdb_name,status from cdb_pdbs;    -- PDB情報確認

PDB_NAME                 STATUS
------------------------ --------------------
ORCLPDB                  NORMAL
PDB$SEED                 NORMAL

SQL>

7. CDB停止、起動

SQL> show con_name  -- 接続先の確認

CON_NAME
------------------------------
CDB$ROOT
SQL> shutdown immediate;   -- CDB停止
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> startup   -- CDB起動
ORACLEインスタンスが起動しました。

Total System Global Area  805304184 bytes
Fixed Size                  9033592 bytes
Variable Size             562036736 bytes
Database Buffers          226492416 bytes
Redo Buffers                7741440 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>

8. PDB停止、起動

SQL> show pdbs  -- PDBの状態確認

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
SQL> alter pluggable database ORCLPDB close immediate;  -- PDB(ORCLPDB)の停止(ORCLPDBをallにすると全てのPDBを停止)

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

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        MOUNTED
SQL> alter pluggable database ORCLPDB open;  -- PDB(ORCLPDB)の起動(ORCLPDBをallにすると全てのPDBを起動)

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

SQL> show pdbs  -- PDBの状態確認

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

9. PDBに接続した状態でのPDB停止、起動

SQL> alter session set container=ORCLPDB;  -- PDBに接続

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

SQL> show con_name  -- 接続先の確認

CON_NAME
------------------------------
ORCLPDB
SQL> shutdown immediate;   -- PDBの停止
プラガブル・データベースがクローズされました。
SQL> select instance_name,status from v$instance;  -- インスタンスの確認

INSTANCE_NAME                    STATUS
-------------------------------- ------------------------
orcl                             MOUNTED

SQL> show pdbs  -- PDBの状態確認

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 ORCLPDB                        MOUNTED
SQL> alter database open;   -- PDBの起動

データベースが変更されました。

SQL> show pdbs  -- PDBの状態確認

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 ORCLPDB                        READ WRITE NO
SQL>

10. 現在のPDB起動状態を保存

SQL> alter session set container=CDB$ROOT;  -- CDBに接続

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

SQL> show con_name    -- 接続先の確認

CON_NAME
------------------------------
CDB$ROOT
SQL> alter pluggable database all save state;  -- 現在のPDB起動状態を保存(allはPDB名としてもよい)

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

SQL>

以上

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away