前回のおさらい
こんにちは!
前回はマルチテナントの概要をお伝えしました。
本ビジネスブログの右側の「最新の投稿」の下にある
カテゴリー > [連載]マルチテナント
から確認できます。
こちらに更新していきますので、宜しくお願いします。
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の起動停止です!
乞うご期待!!!