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