プライマリ・コンテンツに移動
Oracle® Database概要
12c リリース1 (12.1)
B71299-09
目次へ移動
目次
索引へ移動
索引

前
次

17 マルチテナント・アーキテクチャの紹介

この章では、Oracleマルチテナント・オプションに固有の情報について説明します。

次のトピックが含まれています:

マルチテナント・アーキテクチャについて

マルチテナント・アーキテクチャを使用すると、Oracle Databaseをマルチテナント・コンテナ・データベース(CDB)として機能させることができます。

CDBは、顧客が作成した0以上のプラガブル・データベース(PDB)を含みます。PDBは、Oracle Netクライアントに非CDBとして表示されるスキーマ、スキーマ・オブジェクトおよび非スキーマ・オブジェクトの移植可能な集合です。Oracle Database 12cまでのOracle Databaseはすべて非CDBでした。

CDBのコンテナについて

コンテナは、PDBまたはルートのいずれかです。ルート・コンテナは、スキーマ、スキーマ・オブジェクトおよび非スキーマ・オブジェクトの集合で、すべてのPDBはこれに属します。

CDBごとに、次のコンテナがあります。

  • 1つのみのルート

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

  • 1つのシードPDB

    シードPDBは、システム提供のテンプレートで、CDBではこれを使用して新しいPDBを作成できます。シードPDBには、PDB$SEEDの名前が付いています。PDB$SEEDでは、オブジェクトの追加や変更はできません。

  • 0以上のユーザー作成PDB

    PDBは、ユーザー作成のエンティティで、特定の機能セットに必要なデータおよびコードが格納されています。たとえば、PDBでは、人事管理または販売アプリケーションなど、特定のアプリケーションをサポートできます。CDBの作成時にはPDBは存在しません。ビジネスの要件に基づいてPDBを追加します。

次の図では、4つのコンテナ(ルート、シードおよび2つのPDB)を持つCDBを示しています。各PDBには、独自の専用アプリケーションがあります。各PDB管理者はそれぞれのPDBを管理します。共有ユーザーは、1つのCDB全体に1つのIDで存在します。この例では、共有ユーザーSYSは、ルートおよびすべてのPDBを管理できます。物理レベルでは、このCDBには、非CDBと同様に、1つのデータベース・インスタンスと複数のデータベース・ファイルがあります。

図17-1 2つのPDBが含まれるCDB

図17-1の説明は次にあります。
「図17-1 2つのPDBが含まれるCDB」の説明

関連項目:

マルチテナント・アーキテクチャのユーザー・インタフェースについて

CDBおよび非CDBのどちらにも同じ管理ツールを使用できます。

たとえば、マルチテナント環境で次のツールを使用できます。

  • SQL*Plus

    SQL*PlusはOracle DatabaseへSQL文およびPL/SQL文の送信に使用するコマンドライン・プログラムです。

    SQL*Plusユーザーズ・ガイドおよびリファレンスを参照してください。

  • SQL Developer

    SQL DeveloperはOracle Databaseにアクセスするための別のGUIです。SQL Developerは、PDBプロビジョニングをサポートします。

    『Oracle Database 2日で開発者ガイド』を参照してください。

  • Oracle Enterprise Manager Cloud Control (Cloud Control)

    Cloud Controlは、GUIを備えたOracle Databaseの管理ツールです。Cloud Controlでは、Oracle Database 12cのターゲット(PDB、CDBおよび非CDBを含む)をサポートしています。

    Cloud Controlの詳細は、『Oracle Database管理者ガイド』を参照してください。

  • Oracle Enterprise Manager Database Express (EM Express)

    EM Expressは、Oracle Databaseに組み込まれたWebベースの管理製品です。EM ExpressではPDBをプロビジョニングおよび管理でき、次の操作を行うことができます。

    • PDBの作成および削除

    • PDBの接続および切断

    • PDBのクローニング

    • PDBのリソース制限の設定

    EM Expressを使用してCDBとPDBを管理する方法の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

  • Oracle Database Configuration Assistant(DBCA)

    DBCAにより、CDBまたは非CDBの作成、およびPDBの作成、接続および切断ができます。DBCAの詳細は、『Oracle Database 2日でデータベース管理者』および『Oracle Database管理者ガイド』を参照してください。

  • Oracle Multitenant Self-Service Provisioningアプリケーション

    このアプリケーションを使用すると、PDBのセルフサービス・プロビジョニングが可能になります。CDB管理者は、このセルフサービス・アプリケーションへのアクセスを制御し、PDBに対する割当てを管理します。

    アプリケーションの詳細またはソフトウェアのダウンロードには、ブラウザを使用してアプリケーションの次のOTNページにアクセスしてください。

    http://www.oracle.com/goto/multitenant

    アプリケーションにアクセスするには、「ダウンロード」タブをクリックし、Oracle Database 12c Multitenant ApplicationsセクションでMultitenant Self-Service Provisioningを選択します。

関連項目:

マルチテナント・アーキテクチャの利点

マルチテナント・アーキテクチャによって、従来の非CDBアーキテクチャが引き起こす多くの問題が解決されます。

非CDBアーキテクチャの課題

大企業では、使用するデータベースが数百または数千にのぼることがあります。多くの場合、これらのデータベースは、多数の物理サーバー上の様々なプラットフォームで実行されます。

ハードウェア・テクノロジの向上、特にCPU数の増加により、サーバーでは以前より多くのワークロードを処理できるようになりました。1つのデータベースで使用するサーバー・ハードウェアの容量はごく一部です。この方法では、ハードウェアと人事管理の両方が無駄になります。

たとえば、100のサーバーにそれぞれ1つのデータベースがあり、各データベースがハードウェア資源の10%と管理者の時間の10%を使用するとします。DBAのチームは、各データベースのSGA、データベース、データベース・ファイル、アカウント、セキュリティなどを別々に管理する必要がある一方、システム管理者は100台の異なるコンピュータをメンテナンスする必要があります。

この問題を縮小して示すために、図17-2では、それぞれのアプリケーションとサーバーを持つ11のデータベースを表しています。1人の主任DBAが4人のDBAのチームを管理し、各DBAが2つまたは3つのデータベースを担当します。

図17-2 データベース統合前のデータベース環境

図17-2の説明は次にあります。
「図17-2 データベース統合前のデータベース環境」の説明

典型的な対応として、次のようなものがあります。

  • 仮想マシン(VM)を使用します。

    このモデルでは、物理サーバーのオペレーティング・インフラストラクチャ(オペレーティング・システムとデータベース)を仮想マシンにレプリケートします。VMは機動的であるものの、技術リソースが非効率的に使用され、個別の管理が必要となります。仮想スプロールは、管理にかかるコストは同様で、既存の物理スプロールに置き換わるものです。

  • 各サーバー上に複数のデータベースを配置します。

    個別のデータベースを使用する場合、オペレーティング・システムのレプリケーションの必要性はなくなりますが、バックグラウンド・プロセス、システムおよびプロセス・メモリーやOracleメタデータは共有されません。データベースを個別に管理する必要があります。

  • スキーマまたは仮想プライベート・データベース(VPD)にデータを論理的に分割します。

    この方法では、技術リソースが効率的に使用されます。複数のスキーマまたはVPDを一括して管理できます。ただし、このモデルは他の方法と比較して機動性が低く、管理、保護および転送に必要な労力が増加します。また、通常、論理モデルには広範囲にわたるアプリケーションの変更が必要となるため、採用はお薦めしません。

マルチテナント・アーキテクチャのデータベース統合に対する利点

データベース統合とは、複数のデータベースから1台のコンピュータ上の1つのデータベースにデータを統合するプロセスです。Oracle Database 12c以降、Oracleマルチテナント・オプションでは、既存のスキーマまたはアプリケーションを変更することなくデータおよびコードを統合できます。

PDB/非CDB互換性保障とは、Oracle Netで接続しているクライアントから、PDBと非CDBの動作が同じように見えることです。非CDBに対して実行されるアプリケーション・バックエンドのインストール体系は、PDBに対して同じように実行され、同じ結果が生成されます。また、アプリケーション・バックエンドを格納するPDBに接続するクライアント・コードの実行時の動作も、このバックエンドを格納する非CDBに接続されるクライアント・コードの動作と同じです。

完全な非CDBで動作する操作は、完全なCDBの場合と同様に動作します(Oracle Data Guardとデータベースのバックアップおよびリカバリの使用時など)。したがって、非CDBのユーザー、管理者および開発者は、データベースの統合後に実質的に同じ経験をします。

図17-2に、1つのコンピュータに統合後のデータベースを示します。DBAチームは5人から3人に縮小され、1人のCDB管理者でCDBを管理する一方、2人のPDB管理者はPDBの管理を分担します。

データベース統合のためにマルチテナント・アーキテクチャを使用すると、次のような利点があります。

  • コスト削減

    ハードウェアおよびデータベース・インフラストラクチャを1つのセットのバックグラウンド・プロセスに統合し、計算リソースおよびメモリー・リソースを効率的に共有することで、ハードウェアおよびメンテナンスのコストを削減できます。たとえば、1つのサーバー上の100個のPDBが1つのデータベース・インスタンスを共有します。

  • データおよびコードの移動の簡易化および迅速化

    PDBをCDBに接続し、そのPDBをそのCDBから切断し、次にそのPDBを異なるCDBに接続できるように設計されています。接続および切断の実行方法は、トランスポータブル表領域の方法と似ています。

  • 物理データベースの管理および監視の簡易化

    CDB管理者は、ホストされているすべてのテナントとCDBルートに対して1つの操作(パッチ適用やRMANバックアップの実行など)を実行することにより、環境を1つの集合体として管理できます。バックアップ計画および障害回復が簡単になります。

  • データおよびコードの分離

    1つの物理データベースに統合しても、PDBは非CDBと似た動作をします。たとえば、PDB管理者は、CDB内の他のPDBに影響を及ぼすことなく、PDBのコンテキスト内で共有プールまたはバッファ・キャッシュをフラッシュできます。

  • 管理業務の安全な分担

    ユーザー・アカウントが共通の場合、権限を持つどのコンテナにも接続でき、ローカルの場合は、特定のPDBに制限されます。CDB管理者は、1つの共通ユーザー・アカウントを使用して、CDBを管理できます。PDB管理者は、ローカル・アカウントを使用して、個々のPDBを管理します。権限は付与先のコンテナに含まれているため、1つのPDBのローカル・ユーザーには、同じCDB内の他のPDBに対する権限はありません。

  • パフォーマンス・チューニングの容易さ

    複数のデータベースより1つのデータベースのパフォーマンス・メトリックを収集する方が簡単です。100のSGAより1つのSGAのサイズを変更する方が容易です。

  • Oracle Database Resource Managerのサポート

    どの共有リソース環境でも、管理者は、ユーザーに予測可能な環境を提供し、予期しないまたは一時的なリソース競合に対処できるようにシステム・リソースを管理する必要があります。これらの問題に対処し、リソース使用監視を提供するには、Oracle Database Resource Managerを使用できます。

  • データベース・パッチおよびアップグレードの削減

    100のデータベースよりも1つのデータベースにパッチを適用する方が簡単であり、100のデータベースよりも1つのデータベースをアップグレードする方が簡単です。

関連項目:

マルチテナント・アーキテクチャの管理性に対する利点

マルチテナント・アーキテクチャには、データベース統合の他にも次のような利点があります。これらの利点は、すべてのディクショナリ・メタデータを1カ所に格納するのではなく、PDB固有のデータおよびデータ・ディクショナリ・メタデータをPDB自体に格納することで得られます。独自のディクショナリ・メタデータを格納することにより、たとえCDBに1つしかPDBがなくても、PDBは別個の構成単位として管理が容易になります。

データ・ディクショナリの分離には、次の利点があります。

  • 容易になるデータおよびコードの移行

    たとえば、あるデータベース・リリースから別のリリースにCDBをアップグレードするかわりに、PDBを既存のCDBから切断し、より新しいリリースから新たに作成されたCDBに接続することができます。

  • アプリケーション・テストの簡略化

    テストPDB上でアプリケーションを開発でき、配置の準備ができたら、このPDBを本番CDBに接続します。

データベース統合の方法

存在期間中、データベースはCDBまたは非CDBのいずれかです。非CDBをCDBに、またはCDBを非CDBに変換することはできません。データベースを作成時にCDBとして定義してから、このCDB内にPDBおよびアプリケーション・コンテナを作成する必要があります。

データベース統合の基本的な方法は、次のとおりです。

  1. CDBの作成

  2. PDBの作成

CDBの作成

CREATE DATABASE ... ENABLE PLUGGABLE DATABASE SQL文で新規のCDBを作成します。ENABLE PLUGGABLE DATABASE句を指定しない場合、新規に作成されたデータベースは非CDBで、PDBを含めることはできません。

ルート・コンテナ(CDB$ROOT)とともに、Oracle Databaseでは自動的にシードPDB (PDB$SEED)が作成されます。次の図に、新規に作成されたCDBを示します。

図17-4 シードPDBが含まれるCDB

図17-4の説明は次にあります。
「図17-4 シードPDBが含まれるCDB」の説明

例17-1 データベースがCDBかどうかの確認

次の簡単な問合せでは、管理ユーザーが現在接続しているデータベースが非CDBか、それともCDB内のコンテナかを確認します。

SQL> SELECT NAME, CDB, CON_ID FROM V$DATABASE;
 
NAME      CDB     CON_ID
--------- --- ----------
CDB1      YES          0

関連項目:

  • DBCAまたはCREATE DATABASE文を使用したCDBの作成方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • CREATE DATABASE文で指定できる句およびパラメータ値の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

PDBの作成

CREATE PLUGGABLE DATABASE SQL文でPDBを作成します。このPDBでは、メタデータとシステム提供オブジェクトへの内部リンクをはじめとする完全なデータ・ディクショナリが、ルートに自動的に含まれます。PDBを作成できるのはCDB内のみで、別のPDBには作成できません。

次の図は、PDB作成のオプションを示しています。

図17-5 PDBを作成するためのオプション

図17-5の説明は次にあります。
「図17-5 PDBを作成するためのオプション」の説明

次の図では、6つのPDBを含むCDBを示しています。hrpdbは、新規に作成されたPDBです。salespdbは前から存在するPDBで、別のCDBから切断され、このCDBに接続されました。残りの4つのPDBは、それぞれの名前に接頭辞testが付いており、salespdbからコピーされたものです。

図17-6 6つのPDBが含まれるCDB

図17-6の説明は次にあります。
「図17-6 6つのPDBが含まれるCDB」の説明

次の各項では、PDBの様々な作成方法について説明します。

シードからのPDBの作成

CREATE PLUGGABLE DATABASE文を使用して、PDB作成用のテンプレートであるPDB$SEEDのファイルをコピーすることで、PDBを作成できます。

次の図は、シードからの作成を示しています。

図17-7 シードPDBからのPDBの作成

図17-7の説明は次にあります。
「図17-7 シードPDBからのPDBの作成」の説明

次のSQL文は、Oracle Managed Filesを使用してシードからhrpdbという名前のPDBを作成します。

CREATE PLUGGABLE DATABASE hrpdb
 ADMIN USER dba1 IDENTIFIED BY password

関連項目:

この方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

PDBまたは非CDBのクローニングによるPDBの作成

CREATE PLUGGABLE DATABASE文を使用して、ソースPDBまたは非CDBをクローニングし、クローンをCDBに接続できます。

ソースにはローカルまたはリモートCDBのPDBを指定できます。Oracle Database 12cリリース1 (12.1.0.2)以降は、リモートの非CDBも指定できます。この方法では、ソースPDBまたは非CDBに関連付けられたファイルを新しい場所にコピーし、コピーされたファイルを新しいPDBに関連付けます。

注意:

リモートCDBからクローニングする場合は、データベース・リンクを使用する必要があります。

次の図は、同じCDB内の既存のPDBからのPDBのクローニングを示しています。

図17-8 同じCDB内のPDBからのPDBのクローニング

図17-8の説明は次にあります。
「図17-8 同じCDB内のPDBからのPDBのクローニング」の説明

基礎になるPDBのファイルシステムでストレージ・スナップショットがサポートされている場合、SNAPSHOT COPY句を指定することで、ストレージ・スナップショットを使用してPDBをクローニングできます。この場合、Oracle Databaseではソース・データ・ファイルの完全なコピーを作成するのではなく、基礎となるファイルシステムのストレージレベルのスナップショットを作成し、それを使用してPDBのクローンを作成します。スナップショットのコピーにより、ほとんど瞬時にクローンが作成されます。

次のSQL文は、hrpdbという名前のプラグインPDBからsalespdbという名前のPDBのクローンを作成します。

CREATE PLUGGABLE DATABASE salespdb FROM hrpdb

関連項目:

既存のPDBまたは非CDBをクローニングしてPDBを作成にする方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

切断されたPDBの接続によるPDBの作成

切断された状態のPDBは、一連の自己完結型のデータ・ファイルと1つのXMLメタデータ・ファイルです。この方法では、PDBを説明するXMLメタデータ・ファイルと、そのPDBに関連付けられたファイルを使用して、PDBをCDBに関連付けます。

次の図は、切断されたPDBへの接続を示しています。

図17-9 切断されたPDBの接続

図17-9の説明は次にあります。
「図17-9 切断されたPDBの接続」の説明

次のSQL文は、指定したXMLファイルに格納されているメタデータに基づき、financepdbという名前のPDBに接続し、切断されたPDBのファイルは名前を変更する必要がないため、NOCOPYを指定します。

CREATE PLUGGABLE DATABASE salespdb USING '/disk1/usr/financepdb.xml' NOCOPY

関連項目:

この方法を実行する方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

非CDBからのPDBの作成

非CDBをPDBに移動できます。

このタスクは、次の方法で実行できます。

  • Oracle Database 12cで非CDBに対してDBMS_PDB.DESCRIBEを実行します。

    非CDBをトランザクション的に一貫した状態にし、DBMS_PDB.DESCRIBEファンクションを実行して、このデータベースに関するXMLメタデータを生成します。CDBのルートに接続中に、CREATE PLUGGABLE DATABASE文を実行して、既存の非CDBからPDBを作成します。最後に、PDBデータ・ディクショナリ内の定義をCDB$ROOT内のオブジェクトへの参照に変換するために、PDBにログインして、noncdb_to_pdb.sqlスクリプトを実行します。

    この方法の実行方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • トランスポータブル表領域の有無にかかわらず、Oracle Data Pumpを使用します。

    Oracle Data Pumpを使用して、非CDBでデータ・セットを定義できます。この非CDBは、現行または以前のOracle Databaseリリース(Oracle Database 10gなど)のどちらにあるものでもかまいません。既存のCDB内に空のPDBを作成し、Oracle Data Pumpを使用して、このPDBにデータ・セットをインポートします。

    Oracle Data Pumpを使用した完全トランスポータブル・エクスポートにより、データベースの完全なコピーの作成に必要なすべてのオブジェクトとデータをエクスポートします。Oracle Data Pumpにより、ダイレクト・パス・アンロードと外部表を使用してオブジェクトをエクスポートしてから、ダイレクト・パスのINSERTと外部表を使用してオブジェクトをインポートします。完全トランスポータブル・ダンプ・ファイルには、表関連オブジェクトばかりでなく、データベース内のすべてのオブジェクトが含まれます。完全トランスポータブル・エクスポートは、Oracle Database 11gリリース2(11.2.0.3)から、Oracle Database 12cへのインポートに使用できます。

    この方法の実行方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • Oracle GoldenGateレプリケーションを使用します。

    非CDBからPDBにデータをレプリケートします。PDBが非CDBと同じ最新の状態になったら、PDBにスイッチオーバーします。

    この方法の実行方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

次の図は、非CDBでDBMS_PDB.DESCRIBEファンクションを実行してから、非CDBファイルを使用してPDBを作成する方法を示しています。

図17-10 非CDBからのPDBの作成

図17-10の説明は次にあります。
「図17-10 非CDBからのPDBの作成」の説明

関連項目:

  • 「Oracle GoldenGate」

  • PDB作成方法の概要は、『Oracle Database管理者ガイド』を参照してください

マルチテナント環境のドキュメント・ロードマップ

このトピックに、CDBの理解および使用にとって最も重要なトピックと、該当するドキュメントへの相互参照を示します。

表17-1 マルチテナント・アーキテクチャ・ドキュメントのロードマップ

カテゴリ トピック ドキュメント

概要

CDBおよびPDBの概要

Oracle Database概要に関する章および『Oracle Database管理者ガイド』

管理

CDBの作成および構成

Oracle Database管理者ガイド

管理

CDBの管理

Oracle Database管理者ガイド

管理

PDBの作成および構成

Oracle Database管理者ガイド

管理

PDBの管理

Oracle Database管理者ガイド

監視

CDBおよびPDBに関する情報の表示

Oracle Database管理者ガイド

バックアップおよびリカバリ

CDBでのバックアップおよびリカバリの実行

『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

セキュリティ

CDBでの共通ユーザー、ロールおよび権限の管理

『Oracle Databaseセキュリティ・ガイド』

その他

CDBまたはPDBの管理、Oracle RACのインクルード、リソース管理、データ転送などに関連するその他すべてのタスク

Oracle Database管理者ガイドは、CDB管理用の主要なタスク本位の中級および上級ドキュメントです。このガイドには、様々なCDBのトピックを取り上げている書籍への参照リンクも含まれています。たとえば、『Oracle Databaseユーティリティ』では、Oracle Data Pumpを使用する際のPDB固有の概念およびタスクについて説明しています。