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

プラガブルデータベース(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

Oracleの基本 ~データベース入門から設計/運用の初歩までposted with ヨメレバ

渡部 亮太,相川 潔,日比野 峻佑,岡野 平八郎,宮川 大地 技術評論社 2017-09-22

Amazonで探す

Kindleで探す

楽天ブックスで探す

楽天koboで探す

7netで探す

hontoで探す

e-honで探す

紀伊國屋書店で探す

  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次