16 マルチテナント・コンテナ・データベース
CDBの使用
Visual Studioからマルチテナント・アーキテクチャを管理するには、サーバー・エクスプローラでSYSDBAとしてCDBに接続します。
接続すると、「Pluggable Databases」ノードが表示されます。表示されない場合は、SYSDBA権限がないか、データベースが12.1以降でないか、CDBではなくPDBに誤って接続している可能性があります。
このノードには、次のような状況依存メニューがあります:
-
新規プラガブル・データベース: 「New Pluggable Database」ダイアログを開き、シードPDBに基づいて新規PDBを作成できます。この操作の最後に、一般オプション・ページでオプションを選択すると、サーバー・エクスプローラでPDBへの新しい接続が確立され、CDBでTNS接続が使用されていた場合は、PDBの接続別名が
tnsnames.oraファイルに追加されます。 -
接続: 「Plug Pluggable Database」ダイアログを開きます。このダイアログでは、XMLメタデータ・ファイルへのパス、およびCDBと同じコンピュータ上のデータベース・ファイルへのパスを受け入れます。接続すると、PDBはサーバー・エクスプローラ内の他のPDBから参照できます。PDBにはCDBと同じ文字セットが必要です。そうしないと、この操作は失敗します。
「Pluggable Databases」ノードが展開されると、PDBごとに1つずつ子「Pluggable Database」ノードが表示されます。これらの各「Pluggable Database」ノードには、次の操作を可能にするメニュー・オプションがあります。
-
クローニング: 「Clone Pluggable Database」ダイアログを開き、PDBのクローンを作成します。この操作の最後に、一般オプション・ページでオプションを選択すると、サーバー・エクスプローラでPDBへの新しい接続が確立され、CDBでTNS接続が使用されていた場合は、PDBの接続別名が
tnsnames.oraファイルに追加されます。 -
切断: 「Unplug Pluggable Database」ダイアログを開き、XMLメタデータ・ファイルを作成し、CDBからPDBを削除します。その後、PDBはサーバー・ファイルシステムのファイル・セットとしてのみ存在します。
-
閉じる: 「Close Pluggable Database」ダイアログを開きます。非CDBデータベース
SHUTDOWNと同等のものを実行します。 -
開く: 「Open Pluggable Database」ダイアログを開きます。ユーザーがアクセスできるようにPDBを開きます。
-
削除: CDBからPDBを削除し、サーバーからそのファイルを削除します。
サーバー・エクスプローラでのPDBへの接続
一般オプション・ページでオプションが有効になっている場合、新規PDBを作成するかODTを使用してPDBをクローニングすると、サーバー・エクスプローラで管理者アカウントを使用して接続が行われ、該当する場合はtnsnames.oraファイルに接続別名が追加されます。
PDBに手動で接続するには、コンテナ・データベースのホスト名、ポート番号およびデータベース・サービス名が必要です。その後、同じホスト名とポート番号と、プラガブル・データベース名の後にコンテナ・データベース・サービス名の識別子の残りが続くデータベース・サービス名を使用して、PDBに接続できます。
例: CDBが次によって識別される場合:
ホスト: myhost.oracle.com
ポート: 1521
データベース・サービス名: CONTAINERDB.oracle.com
PDBの名前はPDBORCLです。
その後、PDBは次の情報を使用して接続できます:
ホスト: myhost.oracle.com
ポート: 1521
データベース・サービス名: PDBORCL.oracle.com
PDBおよびCDBの互換性
PDBをCDBに接続するには、次の要件を満たす必要があります:
-
同じ文字セットを使用する必要があります。
-
エンディアンが同じである必要があります。
-
PDBおよびターゲットCDBを作成した元のCDBには、同じデータベース・オプション・セットがインストールされている必要があります。
PDBが特定のCDBと互換性があるかどうかを確認するには、CDBに接続し、サーバーにコピーされたデータベース・ファイルを使用して、次のSQL*PlusスクリプトをSYSDBAとして実行します:
SET SERVEROUTPUT ON
DECLARE
compatible CONSTANT VARCHAR2(3) :=
CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
pdb_descr_file => '<<<PDB PATH>>>',
pdb_name => '<<<PDB NAME>>>')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
select type, message from PDB_PLUG_IN_VIOLATIONS where name=''<<<PDB NAME>>>';関連項目:
PDBおよびCDBの互換性の詳細は、『Oracle Database管理者ガイド』を参照してください