前回のおさらい

こんにちは。プラチナホルダー浜辺です。
前回はマルチテナントの概要をお伝えしました。

本ビジネスブログの右側の「最新の投稿」の下にある
カテゴリー > [連載]マルチテナント
から確認できます。

こちらに更新していきますので、宜しくお願いします。

10回くらいは連載するかもしれません?!

 

CDB/PDBへの接続

CDBへの接続は従来のデータベース接続方法と同じです。
例えば、OS認証でローカル接続を行うとCDBに接続されます。
勿論、パスワード認証も可能です。

対して、PDBへの接続は、パスワード認証によるリモート接続が基本です。
CDBに接続した状態で、「 ALTER SESSION SET CONTAINER 」文によりPDBに接続することも可能です。

今回は下記のようなマルチテナント構成で、2つのPDBが存在する検証機を利用して、接続確認を行います。

PDB1 TEST122PDB
PDB2 TEST122PDB2

では、コマンドを見ていきましょう。

CDBへの接続

CDBにローカル接続(OS認証)

[oracle@12r2db1 oracle]$ sqlplus / as sysdba			
			
SQL*Plus: Release 12.2.0.1.0 Production on 金 3月 23 14:14:23 2018			
			
Copyright (c) 1982, 2016, Oracle.  All rights reserved.			
			
			
			
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production			
に接続されました。			
SQL> show con_name			
			
CON_NAME			
------------------------------			
CDB$ROOT

接続できました!
「 show con_name 」 で現在接続しているコンテナ名を表示することが出来ます。

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

[oracle@12r2db1 oracle]$ sqlplus system/

SQL*Plus: Release 12.2.0.1.0 Production on 金 3月 23 14:45:53 2018

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

パスワードを入力してください:


Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
に接続されました。
SQL>
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

パスワード認証もOK!
因みに、PDBに接続した状態から接続コンテナ切替のコマンドでCDBに接続することも可能です。

PDBへの接続

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

[oracle@12r2db1 oracle]$ sqlplus system@test122pdb	
	
SQL*Plus: Release 12.2.0.1.0 Production on 金 3月 23 14:48:32 2018	
	
Copyright (c) 1982, 2016, Oracle.  All rights reserved.	
	
パスワードを入力してください:	
最終正常ログイン時間: 金 3月  23 2018 14:45:55 +09:00	
	
	
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production	
に接続されました。	
SQL>	
SQL> show con_name	
	
CON_NAME	
------------------------------	
TEST122PDB

PDBに接続されました!

共通ユーザを利用した別コンテナからの接続

[oracle@12r2db1 oracle]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on 金 3月 23 14:51:07 2018

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



Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
に接続されました。
SQL>
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> alter session set container=TEST122PDB;

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

SQL>
SQL> show con_name

CON_NAME
------------------------------
TEST122PDB

sys共通ユーザにてPDB(TEST122PDB)に接続しました。

PDBから別のPDBもしくはCDBにも接続を切りかえられます。

SQL> show con_name		
		
CON_NAME		
------------------------------		
CDB$ROOT		
SQL>		
SQL> alter session set container=TEST122PDB;		
		
セッションが変更されました。		
		
SQL>		
SQL> show con_name		
		
CON_NAME		
------------------------------		
TEST122PDB		
SQL>		
SQL>		
SQL> alter session set container=TEST122PDB2;		
		
セッションが変更されました。		
		
SQL>		
SQL> show con_name		
		
CON_NAME		
------------------------------		
TEST122PDB2		
SQL>		
SQL> alter session set container=CDB$ROOT;		
		
セッションが変更されました。		
		
SQL>		
SQL> show con_name		
		
CON_NAME		
------------------------------		
CDB$ROOT

PDB/CDB確認コマンド

では、次に確認手順をご紹介したいと思います。
既に 「 show con_name 」 についてはご紹介しましたが、他にも幾つか確認する方法がございます。

現在接続中のコンテナを確認

SQL> show con_name

CON_NAME
------------------------------
TEST122PDB

コンテナ情報を確認 ①

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 TEST122PDB                     READ WRITE NO
         4 TEST122PDB2                    READ WRITE NO

利用可能なPDBの一覧が表示されます。

コンテナ情報を確認 ②

SQL> select name,open_mode,restricted from v$pdbs;

NAME                 OPEN_MODE                      RESTRICTE
-------------------- ------------------------------ ---------
PDB$SEED             READ ONLY                      NO
TEST122PDB           READ WRITE                     NO
TEST122PDB2          READ WRITE                     NO

「 show pdbs 」と同じく利用可能なPDBの一覧を確認できますが、その他にもPDBが利用しているディスクサイズなど様々な情報を確認できます。
詳細はこちら。

コンテナ情報を確認 ③

SQL> select pdb_name,status from cdb_pdbs;

PDB_NAME             STATUS
-------------------- ------------------------------
TEST122PDB           NORMAL
PDB$SEED             NORMAL
TEST122PDB2          NORMAL

「 v$pdbs 」と同じく様々な情報を確認できますが、「 cdb_pdbs 」ではアンプラグなどPDBの状態をより詳細に確認することができます。
詳細はこちら。

【第2回】CDB/PDBへの接続  は以上です。

個人的には非CDBと同じように運用したいので、PDBへの接続はパスワード認証によるリモート接続を多様しています。
接続確認も、これまではv$sessionで行ってきましたが、今後はshow con_name や show pdbs が増えそうです。

次回は、CDB/PDBの起動停止です!
乞うご期待!!!

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!