マルチテナント環境に関連する基本概念について理解します。
Oracle Multitenantオプションを使用してマルチテナント環境を構成および管理できます。マルチテナント・アーキテクチャを使用すると、Oracle Databaseを、ユーザーが作成した1つ以上のプラガブル・データベース(PDB)を含むマルチテナント・コンテナ・データベース(CDB)として機能させることができます。PDBは、Oracle Netクライアントに非CDBとして表示されるスキーマ、スキーマ・オブジェクトおよび非スキーマ・オブジェクトのポータブル・コレクションです。Oracle Database 12cより前のOracle Databaseはすべて非CDBでした。
関連項目:
『Oracle Database概要』
CDBにはルート、シードおよびPDBが含まれます。
CDBには、次のコンポーネントが含まれます。
ルート
CDB$ROOT
というルートには、Oracle提供のメタデータおよび共通ユーザーが格納されます。メタデータの例は、Oracle提供のPL/SQLパッケージのソース・コードです。共通ユーザーとは、すべてのコンテナで認識されているデータベース・ユーザーです。CDBにはルートが1つのみ含まれます。
シード
PDB$SEED
という名前のシードは、新しいPDBの作成に使用できるテンプレートです。シードへのオブジェクトの追加や、シード内のオブジェクトの変更は実行できません。CDBには、シードが1つのみあります。
PDB
PDBは、ユーザーおよびアプリケーションからは、非CDBであるかのように見えます。たとえば、PDBには特定のアプリケーションをサポートするために必要なデータとコードを含めることができます。PDBは、Oracle Database 12cより前のOracle Databaseリリースに対する完全な下位互換性があります。
これらの各コンポーネントはコンテナと呼ばれます。したがって、ルートはコンテナであり、シードはコンテナであり、各PDBはコンテナです。各コンテナにはCDBで一意のコンテナIDと名前があります。図36-1に、複数のPDBが含まれるCDBを示します。
CDBへのPDBの接続およびCDBからのPDBの切断は簡単に実行できます。PDBを接続する場合は、PDBをCDBに関連付けます。PDBを切断する場合は、CDBからPDBの関連付けを解除します。切断されたPDBは、そのPDBについて記述したXMLファイルおよびPDBのファイル(データファイルやウォレット・ファイルなど)で構成されています。
スキーマやアプリケーションを変更することなく、CDBからPDBを切断して異なるCDBに接続できます。PDBは一度に1つのCDBにのみ接続できます。
各PDBにはグローバル一意識別子(GUID)があります。PDB GUIDは、PDBのファイルを格納するディレクトリ(Oracle Managed Filesディレクトリおよび非Oracle Managed Filesディレクトリの両方を含む)の名前を生成するために主に使用されます。
CDBでは共通ユーザーがサポートされています。共通ユーザーは、ルート、および既存と将来のすべてのPDBにおいて同じIDを持つユーザーです。
共通ユーザーは、ルートおよびCREATE SESSION
権限が付与されているすべてのコンテナにログインできます。共通ユーザーが実行できる操作は、その共通ユーザーに付与されている権限によって異なります。PDBの作成やPDBの切断などの一部の管理タスクは、共通ユーザーが実行する必要があります。CDBでは、ローカル・ユーザーもサポートされています。ローカル・ユーザーは、1つのPDBにのみ存在するユーザーです。
関連項目:
共通ユーザーおよびローカル・ユーザーの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
一部のデータベース管理者はCDB全体を管理し、他のデータベース管理者は個々のPDBを管理します。
CDB全体を管理するデータベース管理者は共通ユーザーとしてCDBに接続し、CDB全体とルートの属性、およびPDBの一部の属性を管理します。たとえば、これらのデータベース管理者は、PDBの作成、切断、接続および削除を実行できます。また、一時表領域やルートのデフォルト表領域を指定したり、1つ以上のPDBのオープン・モードを変更することもできます。
データベース管理者は、ローカルPDB管理者として特定のPDBに接続し、データベース管理者が非CDBで実行する管理タスクのサブセットをそのPDBで実行できます。タスクのこのサブセットは、PDBがアプリケーションをサポートするために必要なものです。たとえば、これらはPDB内の表領域およびスキーマの管理、そのPDBの記憶域パラメータの指定、現在のPDBのオープン・モードの変更、PDBレベルの初期化パラメータの設定などです。
マルチテナント環境により、単一のインストール内で複数のPDBを一元管理でき、複数の目標を達成できます。
マルチテナント環境を使用して、次の目標を達成できます。
コスト削減
ハードウェアおよびデータベース・インフラストラクチャを1つのセットのバックグラウンド・プロセスに統合し、計算リソースおよびメモリー・リソースを効率的に共有することで、ハードウェアおよびメンテナンスのコストを削減できます。
より簡単かつ高速なデータおよびコードの移動
PDBをCDBに接続し、そのPDBをそのCDBから切断し、次にそのPDBを異なるCDBに接続できるように設計されています。したがって、アプリケーションのデータベース・バック・エンドを1つのサーバーから別のサーバーに簡単に移動できます。
物理データベースの容易な管理および監視
CDB管理者は、ホストされているすべてのテナントおよびCDBルートに対し、パッチ適用やRMANバックアップの実行といった単一操作を実行することで、環境をまとめて管理できます。
データおよびコードの分離
PDBは、単一の物理CDBに結合されるものの、従来の非CDBの動作を模倣します。たとえば、PDB管理者は、CDB内の他のPDBに影響を及ぼすことなく、PDBのコンテキスト内で共有プールまたはバッファ・キャッシュをフラッシュできます。
容易なパフォーマンス・チューニング
複数の非CDBよりも1つのCDBの方がパフォーマンス・メトリックを容易に収集できます。複数のSGAよりも1つのSGAの方がサイズを容易に決定できます。
Oracle Database Resource Managerのサポート
どの共有リソース環境でも、管理者は、ユーザーに予測可能な環境を提供し、予期しないまたは一時的なリソース競合に対処できるようにシステム・リソースを管理する必要があります。これらの問題に対処し、リソース使用率を監視できるようにするには、Oracle Database Resource Managerを使用します(「SQL*PlusによるPDBでのOracle Resource Managerの使用」を参照)。
パッチおよびアップグレードの削減
複数の非CDBよりも1つのCDBにパッチを適用する方が容易であり、複数の非CDBよりも1つのCDBをアップグレードする方が容易です。
マルチテナント環境は、複数のOracle Databaseインストールの異なるハードウェアに多数の非CDBがデプロイされている場合に特に便利です。これらの非CDBでは、専用に割り当てられたハードウェア・リソースの一部のみを使用していたり、データベース管理者が必ずしも常に各非CDBを管理する必要がない場合があります。
これらの非CDBをCDBに結合することで、ハードウェア・リソースおよびデータベース管理者リソースをより効率的に使用できます。また、PDBに依存しているアプリケーションに変更を加えることなく、PDBをあるCDBから別のCDBに移動できます。
マルチテナント環境の前提条件を満たす必要があります。
マルチテナント環境を作成して使用する前に、次の前提条件を満たしている必要があります。
Oracle Database 12cをインストールします。
インストールには、オペレーティング・システム固有の各環境変数の設定、およびソフトウェアとデータベース・ファイルのディレクトリ構造の設定が含まれます。
使用しているオペレーティング・システム固有の『Oracle Databaseインストレーション・ガイド』を参照してください。
データベースの互換性レベルを少なくとも12.0.0
に設定します。
データベースの互換性レベルの詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。
マルチテナント環境で実行する一般的なタスクおよびタスクを完了するためにツールがあります。
マルチテナント環境を使用すると、複数の目標を達成できます。一般的なタスクを完了して、マルチテナント環境を構成および使用します。
これらの目標については、「マルチテナント環境の目的」で説明しています。そのためには、次の一般的なタスクを実行する必要があります。
データベースを作成および構成するには、綿密な計画が必要です。CDBには特別な注意が必要です。たとえば、CDBを計画するときは、次のことを考慮する必要があります。
各CDBに接続するPDBの数
計画しているCDBのサポートに必要なリソース
CDB全体に対してまとめて実行されるか、個別のPDBでローカルに実行されるコンテナ管理ポリシー
CDBの計画の詳細は、「CDB作成計画」を参照してください。
必要な計画を完了すると、Database Configuration Assistant (DBCA)またはCREATE
DATABASE
SQL文を使用して、1つ以上のCDBを作成できます。いずれの場合も、各CDBの構成の詳細を指定する必要があります。
CDBの作成の詳細は、「DBCAを使用したCDBの作成」および「CREATE DATABASE文を使用したCDBの作成」を参照してください。
CDBは、作成されると、図36-2に示すようにルートおよびシードで構成されます。ルートにはOracle管理のオブジェクトおよびデータ構造のみが含まれ、シードはクローニング目的の汎用シード・データベースです。
PDBにはユーザー・データが含まれています。CDBの作成後、PDBを作成し、切断されたPDBをそのCDBに接続し、必要な場合はいつでもPDBをそのCDBから切断できます。CDBからPDBを切断して、このPDBを異なるCDBに接続できます。PDBのワークロードをあるサーバーから別のサーバーに移動する必要がある場合など、PDBをあるCDBから別のCDBに移動することがあります。
PDBの作成、PDBの接続およびPDBの切断の詳細は、「SQL*Plusを使用したPDBの作成および削除」および「Cloud Controlを使用したPDBの作成および削除」を参照してください。
図36-3に、複数のPDBが含まれたCDBを示します。
CDBの管理および監視には、CDB全体、ルート、およびPDBの一部の属性の管理が含まれます。CDBと非CDBで同じ管理タスクもあれば、異なる管理タスクもあります。類似のタスクおよび異なるタスクの詳細は、「CDBの作成後」を参照してください。また、「SQL*Plusを使用したCDBの管理」、「Cloud ControlでのCDBおよびPDBの管理」および「SQL*Plusを使用したCDBおよびPDBに関する情報の表示」を参照してください。
Oracle Resource Managerを使用して、CDB内でホストされているPDB間でリソースを割り当てて管理したり、PDB内のユーザー・プロセス間でリソース使用量を割り当てて管理できます。「SQL*PlusでのPDBに対するOracle Resource Managerの使用」を参照してください。
Oracle Schedulerを使用して、CDB内のジョブ、および個々のPDB内のジョブをスケジュールすることもできます。「CDBでのOracle Schedulerの使用」を参照してください。
PDBの管理および監視は、非CDBの管理および監視に似ていますが、異なる点もあります。「Cloud ControlでのCDBおよびPDBの管理」、「SQL*Plusを使用したPDBの管理」および「SQL*Plusを使用したCDBおよびPDBに関する情報の表示」を参照してください。
様々なツールを使用して、マルチテナント環境を構成および管理できます。
次のツールを使用して、マルチテナント環境のタスクを完了します。
SQL*Plus
SQL*Plusとは、CDBおよびPDBを作成、管理および監視できるコマンドライン・ツールです。SQL文およびオラクル社が提供するPL/SQLパッケージを使用して、SQL*Plusでこれらのタスクを実行します。
『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。
DBCA
Oracle Database Configuration Assistant (DBCA)は、CDBの構成、PDBの作成、PDBの接続およびPDBの切断に使用できるグラフィカル・ユーザー・インタフェースが含まれたユーティリティです。
DBCAの詳細は、『Oracle Database 2日でデータベース管理者』、『Oracle Databaseインストレーション・ガイド』およびDBCAオンライン・ヘルプを参照してください。
Oracle Enterprise Manager Cloud Control
Cloud Controlとは、CDBおよびそのPDBの管理および監視に使用できるグラフィカル・ユーザー・インタフェースが含まれたシステム管理ツールです。
Cloud Controlの詳細は、Cloud Controlのオンライン・ヘルプを参照してください。
Oracle SQL Developer
Oracle SQL Developerは、SQL*Plusをグラフィカルにしたものです。データベース開発者は、Oracle SQL Developerを使用して基本的なタスクを簡単に実行できます。
『Oracle SQL Developerユーザーズ・ガイド』を参照してください。
サーバー制御(SRVCTL)ユーティリティ
SRVCTLユーティリティを使用して、PDBのサービスを作成および管理できます。
「PDBに関連付けられたサービスの管理」を参照してください。
EM Express
注意:
EM Expressを使用したPDB管理は、Oracle Database 12cリリース1 (12.1.0.2)以上で使用できます。
EM Expressでは、シードからのPDBの作成、PDBのクローニング、PDBのブラグイン、PDBの切断、PDBの削除といったPDBの管理をサポートしています。また、EM Expressでは、PDBレベルでのCPU使用率や記憶域の制限の設定などの基本リソース管理およびCDBレベルでのリソース・プランの変更もサポートしています。
詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
Oracle Multitenant Self-Service Provisioningアプリケーション
注意:
この機能は、Oracle Database 12cリリース1 (12.1.0.2)以上で使用できます。
このアプリケーションを使用すると、PDBのセルフサービス・プロビジョニングが可能になります。CDB管理者は、このセルフサービス・アプリケーションへのアクセスを制御し、PDBに対する割当てを管理します。
アプリケーションの詳細またはソフトウェアのダウンロードには、ブラウザを使用してアプリケーションの次のOTNページにアクセスしてください。
http://www.oracle.com/goto/multitenant
アプリケーションにアクセスするには、ダウンロード・タブをクリックし、Oracle Database 12c Multitenant ApplicationsセクションでMultitenant Self-Service Provisioningを選択します。