OracleDB

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

こんにちは!土門大貴(daikidomon)です。

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

 

関連記事

-OracleDB

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.