36 マルチテナント環境の管理の概要

マルチテナント環境に関する基本的概念を詳しく学びます。

36.1 マルチテナント環境について

Oracle Multitenantオプションを使用してマルチテナント環境を構成および管理できます。マルチテナント・アーキテクチャを使用すると、Oracle Databaseを、ユーザーが作成した1つ以上のプラガブル・データベース(PDB)を含むマルチテナント・コンテナ・データベース(CDB)として機能させることができます。PDBは、Oracle Netクライアントに非CDBとして表示されるスキーマ、スキーマ・オブジェクトおよび非スキーマ・オブジェクトのポータブル・コレクションです。Oracle Database 12cより前のOracle Databaseはすべて非CDBでした。

36.1.1 CDBのコンポーネント

CDBにはルート、CDBシードおよびPDBが含まれます。

CDBには、次のコンポーネントが含まれます。

  • ルート

    CDB$ROOTというルートには、Oracle提供のメタデータおよび共通ユーザーが格納されます。メタデータの例は、Oracle提供のPL/SQLパッケージのソース・コードです。共通ユーザーとは、すべてのコンテナで認識されているデータベース・ユーザーです。CDBにはルートが1つのみ含まれます。

  • CDBシード

    PDB$SEEDという名前のCDBシードは、新しいPDBの作成に使用できるテンプレートです。CDBシードへのオブジェクトの追加や、CDBシード内のオブジェクトの変更は実行できません。CDBには、CDBシードが1つのみあります。

  • PDB

    PDBは、ユーザーおよびアプリケーションからは、非CDBであるかのように見えます。たとえば、PDBには特定のアプリケーションをサポートするために必要なデータとコードを含めることができます。PDBは、Oracle Database 12cより前のOracle Databaseリリースに対する完全な下位互換性があります。

これらの各コンポーネントはコンテナと呼ばれます。したがって、ルートはコンテナであり、CDBシードはコンテナであり、各PDBはコンテナです。各コンテナにはCDBで一意のコンテナIDと名前があります。図36-1に、複数のPDBが含まれるCDBを示します。

図36-1 PDBが含まれるCDB

図36-1の説明が続きます
「図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ディレクトリの両方を含む)の名前を生成するために主に使用されます。

36.1.2 共通ユーザーとローカル・ユーザー

CDBでは共通ユーザーがサポートされています。共通ユーザーは、ルート、および既存と将来のすべてのPDBにおいて同じIDを持つユーザーです。

共通ユーザーは、CREATE SESSION権限が付与されているルートおよびコンテナにログインできます。共通ユーザーが実行できる操作は、その共通ユーザーに付与されている権限によって異なります。PDBの作成やPDBの切断などの一部の管理タスクは、共通ユーザーが実行する必要があります。CDBでは、ローカル・ユーザーもサポートされています。ローカル・ユーザーは、1つのPDBにのみ存在するユーザーです。

関連項目:

共通ユーザーおよびローカル・ユーザーの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

36.1.3 CDB管理とPDB管理の業務の分離

一部のデータベース管理者はCDB全体を管理し、他のデータベース管理者は個々のPDBを管理します。

CDB全体を管理するデータベース管理者は共通ユーザーとしてCDBに接続し、CDB全体とルートの属性、およびPDBの一部の属性を管理します。たとえば、これらのデータベース管理者は、PDBの作成、切断、接続および削除を実行できます。また、一時表領域やルートのデフォルト表領域を指定したり、1つ以上のPDBのオープン・モードを変更することもできます。

データベース管理者は、ローカルPDB管理者として特定のPDBに接続し、データベース管理者が非CDBで実行する管理タスクのサブセットをそのPDBで実行できます。タスクのこのサブセットは、PDBがアプリケーションをサポートするために必要なものです。たとえば、これらはPDB内のテーブルスペースおよびスキーマの管理、PDBの記憶域パラメータの指定、現在のPDBのオープン・モードの変更、PDBレベルの初期化パラメータの設定などです。

36.1.4 アプリケーション・コンテナ

アプリケーション・コンテナは、アプリケーション・ルートとそれに関連付けられたすべてのアプリケーションPDBから成るCDBのオプション・コンポーネントです。アプリケーション・コンテナは、1つ以上のアプリケーションのデータを格納し、アプリケーションのメタデータおよび共通データを共有します。

アプリケーション・コンテナは、CDB内のルートから分離されたアプリケーション・ルートを持つ特殊なタイプのPDBであり、1つ以上のPDBを持つことができます。PDBがアプリケーション・ルートに属する場合、それはアプリケーションPDBと呼ばれます。

アプリケーション・ルートは、アプリケーションPDBが属することのできるコンテナです。アプリケーション・ルートはそのCDBルートに属し、CDBルート内のオラクル社が提供する共通オブジェクトの説明を共有します。また、アプリケーション・ルートにより、アプリケーション・ルートとアプリケーション・ルートに属するアプリケーションPDBによってのみ共有されるアプリケーション共通オブジェクトを作成できます。アプリケーション共通オブジェクトはCDBルート、他のアプリケーション・ルート、またはアプリケーション・ルートに属さないPDBには表示されません。アプリケーション・ルートは別のアプリケーション・ルートに属することができず、PDBはアプリケーション・ルートに属さないか、1つのアプリケーション・ルートにのみ属することができます。

アプリケーション・コンテナのアプリケーション・シードを作成できます。アプリケーション・シードはオプションですが、存在する場合は、アプリケーション・コンテナの要件を満たすアプリケーションPDBを迅速に作成するために使用できます。アプリケーション・シードにより、そこから作成されるアプリケーションPDBを瞬時にプロビジョニングできます。

図36-2 CDB内のアプリケーション・コンテナ

図36-2の説明が続きます
「図36-2 CDB内のアプリケーション・コンテナ」の説明

各アプリケーション・コンテナに1つ以上のアプリケーション名を指定でき、各アプリケーション名がアプリケーション・バージョンを持ちます。現在アプリケーション・コンテナの一部ではないアプリケーションPDBの場合、そのアプリケーションの名前とバージョンによって、アプリケーション・ルートにクローニング、接続または再配置できるかどうかが決まります。アプリケーション・コンテナにアプリケーション名またはアプリケーション・バージョンが指定されていない場合、それらが指定されていないPDBのみをアプリケーション・コンテナに接続できます。

アプリケーション・ルートにアプリケーションをインストールできます。インストールはスクリプト主導またはGUI主導、あるいはその2つの組合せです。この方法を使用してアプリケーションをインストールするには、アプリケーションをインストールする前にALTER PLUGGABLE DATABASE APPLICATION BEGIN INSTALL SQL文を実行し、アプリケーションのインストール後にALTER PLUGGABLE DATABASE APPLICATION END INSTALL SQL文を実行します。アプリケーションをアプリケーション・ルートにインストールしたら、それらを同期することによってアプリケーションPDBにアプリケーションをインストールできます。

各アプリケーション・コンテナは、現在のコンテナがアプリケーション・ルートの場合にのみ作成できる独自のアプリケーション共通ユーザー、アプリケーション・ロールおよびアプリケーション・プロファイルを持つことができます。アプリケーション共通ユーザーは、自身が作成されたアプリケーション・ルートおよびアプリケーション・ルートに属するアプリケーションPDBにのみ接続または切り替えることができます。

注意:

  • アプリケーションは、CDBルートまたはCDBルートに接続されているPDBにインストールできません。

  • このドキュメントで、「ルート」はCDBルート(CDB$ROOT)に関する言及を示しています。アプリケーション・ルートに関する言及には、「アプリケーション・ルート」という用語が使用されています。

36.2 マルチテナント環境の目的

マルチテナント環境により、単一のインストール内で複数のPDBを一元管理でき、複数の目標を達成できます。

マルチテナント環境を使用して、次の目標を達成できます。

  • コスト削減

    ハードウェアおよびデータベースのインフラストラクチャを単一のバックグラウンド・プロセスのセットに統合し、計算およびメモリーのリソースを効率的に共有することによって、ハードウェアおよび保守のコストが削減されます。

  • より簡単かつ高速なデータおよびコードの移動

    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に移動できます。

36.3 マルチテナント環境の前提条件

マルチテナント環境の前提条件を満たす必要があります。

マルチテナント環境を作成して使用する前に、次の前提条件を満たしている必要があります。

  • Oracle Database 12cをインストールします。

    インストールには、オペレーティング・システム固有の各環境変数の設定、およびソフトウェアとデータベース・ファイルのディレクトリ構造の設定が含まれます。

    使用しているオペレーティング・システム固有の『Oracle Databaseインストレーション・ガイド』を参照してください。

  • データベースの互換性レベルを少なくとも12.0.0に設定します。

    データベースの互換性レベルの詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

36.4 マルチテナント環境のタスクおよびツール

マルチテナント環境で実行する一般的なタスクおよびタスクを完了するために使用するツールがあります。

36.4.1 マルチテナント環境のタスク

マルチテナント環境を使用すると、複数の目標を達成できます。一般的なタスクを実行することによって、マルチテナント環境を構成および使用できます。

これらの目標については、「マルチテナント環境の目的」で説明しています。そのためには、次の一般的なタスクを実行する必要があります。

タスク1   マルチテナント環境のプラン

データベースを作成および構成するには、綿密な計画が必要です。CDBには特別な注意が必要です。たとえば、CDBを計画するときは、次のことを考慮する必要があります。

  • 各CDBに接続するPDBの数

  • 計画しているCDBのサポートに必要なリソース

  • CDB全体に対して集約として実行されるか、個別のPDBでローカルに実行されるコンテナ管理ポリシー

  • アプリケーション・コンテナとアプリケーションPDB、CDBとPDB、またはその両方の組合せで構成されるコンテナ・データベース・トポロジ

CDBの計画の詳細は、「CDB作成計画」を参照してください。

タスク2   1つ以上のCDBの作成

必要な計画を完了すると、Database Configuration Assistant (DBCA)またはCREATE DATABASE SQL文を使用して、1つ以上のCDBを作成できます。いずれの場合も、各CDBの構成の詳細を指定する必要があります。

CDBの作成の詳細は、「DBCAを使用したCDBの作成」および「CREATE DATABASE文を使用したCDBの作成」を参照してください。

CDBは、作成されると、図36-3に示すようにルートおよびCDBシードで構成されます。CDBルートにはOracleによって保守されるオブジェクトおよびデータ構造のみが含まれ、CDBシードはクローニングのための汎用的なシード・データベースです。

図36-3 新しく作成されたCDB

図36-3の説明が続きます
「図36-3 新しく作成されたCDB」の説明
タスク3   オプションでのアプリケーション・コンテナの作成

アプリケーション・コンテナは、アプリケーション・ルートとそれに関連付けられたすべてのアプリケーションPDBから成るCDBのオプション・コンポーネントです。アプリケーション・コンテナには、1つ以上のアプリケーションのデータが格納されています。

図36-4に、1つの空のアプリケーション・コンテナがあるCDBを示します。

図36-4 アプリケーション・コンテナ

図36-4の説明が続きます
「図36-4 アプリケーション・コンテナ」の説明

「アプリケーション・コンテナ」を参照してください。

タスク4   PDBの作成、接続および切断

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-5に、複数のPDBが含まれるCDBを示します。

図36-5 PDBが含まれるCDB

図36-5の説明が続きます
「図36-5 PDBが含まれるCDB」の説明

図36-6は、PDB、アプリケーション・コンテナおよびアプリケーションPDBが含まれるCDBを示しています。

図36-6 PDB、アプリケーション・コンテナおよびアプリケーションPDBが含まれるCDB

図36-6の説明が続きます
「図36-6 PDB、アプリケーション・コンテナおよびアプリケーションPDBが含まれるCDB」の説明
タスク5   CDBおよびアプリケーション・コンテナの管理および監視

CDBの管理および監視には、CDB全体、ルート、およびPDBの一部の属性の管理が含まれます。CDBと非CDBで同じ管理タスクもあれば、異なる管理タスクもあります。

アプリケーション・コンテナの管理および監視は、CDBの管理および監視と似ていますが、アクションはアプリケーション・ルートとアプリケーション・コンテナに属するアプリケーションPDBにのみ影響します。

類似のタスクおよび異なるタスクの詳細は、「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の使用を参照してください。

タスク6   PDBおよびアプリケーションPDBの管理および監視

PDBまたはアプリケーションPDBの管理および監視は、非CDBの管理および監視に似ていますが、異なる点もあります。「Cloud ControlでのCDBおよびPDBの管理」「SQL*Plusを使用したPDBの管理」および「SQL*Plusを使用したCDBおよびPDBに関する情報の表示」を参照してください。

36.4.2 マルチテナント環境のツール

様々なツールを使用して、マルチテナント環境を構成および管理できます。

次のツールを使用して、マルチテナント環境のタスクを完了します。

  • 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は、CDBの構成、PDBの作成、PDBの接続と切断、PDBの状態の変更、Oracle CloudへのPDBのクローニング、PDBのホット・クローニング/リフレッシュ、アプリケーション・ルート間でのPDBの再配置などを行うことのできるグラフィカル・ユーザー・インタフェースのあるクライアント・アプリケーションです。

    また、Oracle SQL Developerには、リソース管理、記憶域、セキュリティ、構成およびCDB内のコンテナとプラガブル・データベースに関するパフォーマンス・メトリックのレポートのためのグラフィカル・インタフェースがあります。

    『Oracle SQL Developerユーザーズ・ガイド』を参照してください。

  • サーバー制御(SRVCTL)ユーティリティ

    SRVCTLユーティリティを使用して、PDBのサービスを作成および管理できます。

    「PDBに関連付けられたサービスの管理」を参照してください。

  • EM Express

    注意:

    EM Expressを使用したPDB管理は、Oracle Database 12cリリース1 (12.1.0.2)以上で使用できます。

    EM Expressは、グラフィカル・ユーザー・インタフェースを持つ管理および監視ツールであり、Oracle Databaseに同梱されています。これは、CDB、ホストされる個別のPDB、またはその両方のために構成できます。このツールはPDBを管理するために使用することが意図されており、PDBのコンテキストで、アプリケーションDBAとしてアプリケーション開発を管理および監視するために使用します。

    詳細は、『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 Multitenentのダウンロード・セクションでOracle Pluggable Database Self-Service Provisioningアプリケーションを選択します。