Database OracleDB インフラ

[Oracle] プラガブルデータベース(pdb)とコンテナデータベース(CDB)に接続する方法

こんにちは!シミダイ(@shimidai2100)です。

プラガブルデータベース(PDB)コンテナデータベース(CDB)接続する方法を紹介します。

NON-CDBのデータベースならば「ORACLE_SID」を設定すれば簡単に接続することができますが、コンテナデータベース構成ですと少々クセがあります。

コンテナデータベース⇒プラガブルデータベースプラガブルデータベース⇒コンテナデータベースの接続方法をマスターしましょう。


接続記述子で接続先PDBを指定

接続記述子で接続先PDBを指定します。

sqlplus <DBユーザー>/<パスワード>@<接続記述子>

接続奇術師は以下のように「tnsnames.ora」に追記しておきましょう。

<接続記述子> =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <ホスト名>)(PORT = <ポート番号>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <サービス名>)
    )
  )

1行目「PDB01」は接続記述子なので任意の識別子名を付けます。

以下が実行例でPDB01識別子名でPDB01に接続しています。

[oracle@test-server ]$ sqlplus sys/password@pdb01 as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Fri Nov 2 13:42:55 2018
Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SYS@PDB01>

alter session set container ~ で接続先DBを指定

接続しているユーザーで別のコンテナデータベースまたはプラガブルデータベースに接続するには、

alter session」文を使用します。

alter session set container = <PDB名>;

以下が実行例になります。

SQL>> alter session set container = pdb01 ;

Session altered.

接続しているPDBを確認:select * from V$PDBS;

現在接続しているPDBが何かを確認するには「V$PDBS」ビューで確認することができます。

col name for a10
col OPEN_MODE for a30
select NAME
     , OPEN_MODE
 from V$PDBS;

以下が実行例になります。

SYS@cdb01> col name for a10
SYS@cdb01> col OPEN_MODE for a30
SYS@cdb01> select NAME
  2       , OPEN_MODE
  3    from V$PDBS;  

NAME        OPEN_MODE
---------- ------------------------------
PDB01       READ WRITE

 

関連記事

-Database, OracleDB, インフラ

Copyright© shimidai2100 , 2020 All Rights Reserved.