14 CDBフリートの管理
CDBフリートは、1つの論理CDBとして管理できるCDBおよびホストされるPDBの集合です。
この章のトピックは、次のとおりです:
- CDBフリートについて
リードCDBは、フリート内のCDBを監視および管理する中心的な場所です。 - CDBフリートの目的
CDBフリートによって、多数のCDBのスケーラビリティおよび集中管理のためのデータベース・インフラストラクチャが提供されます。 - CDBフリートへのリードCDBの設定
LEAD_CDB
データベース・プロパティをtrue
に設定することによって、CDBフリートにリードCDBを設定します。 - CDBフリート・メンバーの指定
LEAD_CDB_URI
データベース・プロパティを、リードCDBを指し示すデータベース・リンクに設定することによって、フリート・メンバーを指定します。
親トピック: マルチテナント環境の管理
CDBフリートについて
リードCDBは、フリート内のCDBを監視および管理する中心的な場所です。
LEAD_CDB
データベース・プロパティをTRUE
に設定することによって、フリート内の1つのCDBをリードCDBに指定します。LEAD_CDB_URI
データベース・プロパティを設定することによって、フリート内の他のCDBがリードCDBを指し示します。CDBフリートを構成した後、様々なCDBからのPDB情報はリードCDBと同期されます。CDB内のすべてのPDBがリードCDBに表示されるため、フリート内のPDBにはリードCDBから単一の論理CDBとしてアクセスできます。
次の図は、CDB1、CDB2およびCDB3で構成されたCDBフリートを示しています。リードCDBはCDB1です。CDB2に存在するCDB2_hrpdbがCDB1に表示されます。CDB3に存在するCDB3_hrpdbもCDB1に表示されます。
Oracle Real Application Cluster (Oracle RAC)、RMAN、Point-in-Timeリカバリ、フラッシュバック機能など、Oracle Databaseのすべての機能がフリート内のCDBでサポートされています。
次のコンテナ間機能を使用して、CDBフリート内のCDBおよびPDBにアクセスできます。
-
CDB
ビュー -
GV$
ビュー -
CONTAINERS
句 -
コンテナ・マップ
アプリケーション・コンテナを使用して共通アプリケーション・スキーマが構成されている場合、これらのコンテナ間機能によって、フリートで管理されている異なるCDB内のPDB間で問合せおよびデータ集計が可能になります。
ノート:
-
各PDB名は、CDBフリート内のすべてのCDBで一意である必要があります。
-
フリート内の任意のCDBにPDBを作成できますが、PDBが作成されたCDBでのみPDBを開くことができます。
親トピック: CDBフリートの管理
CDBフリートの目的
CDBフリートによって、多数のCDBのスケーラビリティおよび集中管理のためのデータベース・インフラストラクチャが提供されます。
CDBフリートは次の状況で役立ちます。
-
プロビジョニングが必要なPDBの数が
MAX_PDBS
初期化パラメータ設定を超えているため、複数のCDBを作成する必要がある場合。 -
最適に機能するには、1つの構成内の異なるPDBで異なるタイプのサーバーが必要な場合。
たとえば、一部のPDBは大規模なトランザクションの負荷を処理する可能性があり、それ以外のPDBは主に監視用として使用される場合、これらのPDBに対して適切なサーバー・リソース(CPU、メモリー、I/Oレート、ストレージ・システムなど)が必要です。
-
同じアプリケーションを使用する異なるPDBは、異なる場所に存在する必要があります。
CDB間の収集の監視と診断
リードCDBは、フリート内のCDB間で実行する監視アプリケーションおよびレポート・アプリケーションを実行できます。1つのコンテナに監視アプリケーションをインストールし、CDB
ビューおよびGV$
ビューを使用して、CDBフリート全体の診断データを監視および処理できます。リードCDBで発行されたコンテナ間の問合せは、CDBフリート全体のすべてのPDBで自動的に実行できます。
Software as a Service (SaaS)アプリケーション
CDBフリート全体で異なるアプリケーション・コンテナの共通スキーマおよび共通アプリケーション・オブジェクトを使用すると、CONTAINERS
句またはコンテナ・マップを使用して、CDBフリート内のすべてのPDB間で問合せを実行できます。CDB間で共通アプリケーション・スキーマを使用するために、アプリケーションをアプリケーション・ルートにインストールできます。
一般的なユースケースでは、マスター・アプリケーション・ルートをリードCDBにインストールします。アプリケーション・ルート・クローンはフリート内の他のすべてのCDBに存在します。アプリケーション・ルート・クローンのプロキシPDBはマスター・アプリケーション・ルートに存在します。
Database as a Service (DBaaS)アプリケーション
リードCDBは、CDBフリートにプロビジョニングされた全部または一部のPDBの使用状況メトリックとステータスを収集および表示できる中心的な場所として機能します。
マイクロサービス
マイクロサービスは、柔軟で独立してデプロイ可能なソフトウェア・システムを構築するために使用する、サービス指向アーキテクチャを特殊化したものです。マイクロサービスを使用すると、各チームは、カスタマイズされたスケーリングおよび可用性SLAを使用してCDBフリートをデプロイおよび管理できます。CDBでは、異なるストレージ・システムおよび構成設定を使用して、様々なタイプのワークロードに対応できます。リードCDBは、個々のマイクロサービスに関連付けられているCDBの集合を中央のDBAが管理するのに役立ちます。
関連項目:
-
MAX_PDBS
についてさらに学習するには、Oracle Databaseリファレンスを参照してください
親トピック: CDBフリートの管理
CDBフリートへのリードCDBの設定
LEAD_CDB
データベース・プロパティをtrue
に設定することによって、CDBフリートにリードCDBを設定します。
CDBフリートにリードCDBを設定するには:
-
SQL*Plusで、現在のコンテナが、リードCDBになるCDBのルートであることを確認します。
-
必要に応じて、次の問合せを実行して、現在の
LEAD_CDB
データベース・プロパティを確認します。SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='LEAD_CDB';
-
LEAD_CDB
データベース・プロパティをTRUE
に設定します。
例14-1 リードCDBのデータベース・プロパティをtrueに設定
-
CDBルートにアクセスします。
ALTER SESSION SET CONTAINER = CDB$ROOT;
-
次のSQL文を実行します。
ALTER DATABASE SET LEAD_CDB = TRUE;
関連項目:
親トピック: CDBフリートの管理
CDBフリート・メンバーの指定
LEAD_CDB_URI
データベース・プロパティを、リードCDBを指し示すデータベース・リンクに設定することによって、フリート・メンバーを指定します。
前提条件
固定ユーザーのセマンティクスを含むデータベース・リンク(つまり、ユーザー名とパスワードがリンク定義に含まれる)を使用する必要があります。リンクでは、接続ユーザーのセマンティクス(ユーザー名とパスワードがリンク定義に含まれない場合)を使用できません。
CDBフリート・メンバーを指定するには:
-
SQL*Plusで、現在のコンテナが、フリートメンバーとして指定するCDBのルートであることを確認します。
-
必要に応じて、次の問合せを実行して、現在の
LEAD_CDB_URI
データベース・プロパティを確認します。SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='LEAD_CDB_URI';
-
データベース・リンクが存在しない場合は、フリート内のリートCDBのルートへのリンクを作成します。
データベース・リンクは、固定共通ユーザー・データベース・リンクである必要があります。
-
LEAD_CDB_URI
データベース・プロパティを、リードCDBへのデータベース・リンクの名前に設定します。
例14-2 CDBフリート・メンバーの指定
この例では、リードCDBがcdb1
で、リードCDBへのデータベース・リンクが存在しないと想定しています。また、現在のCDBがlead_pod
サービス名を使用してcdb1
に接続できるネットワークが構成されていると想定しています。
-
フリート・メンバーとして指定するCDBのルートにアクセスします。
ALTER SESSION SET CONTAINER = CDB$ROOT;
-
cdb1
へのデータベース・リンクを作成します。CREATE PUBLIC DATABASE LINK lead_link CONNECT TO C##CF1 IDENTIFIED BY password USING 'lead_pod';
-
LEAD_CDB_URI
プロパティをデータベース・リンクの名前に設定します。ALTER DATABASE SET LEAD_CDB_URI = 'dblink:LEAD_LINK';
関連項目:
-
固定ユーザー・データベース・リンクの詳細は、『Oracle Database管理者ガイド』を参照してください
親トピック: CDBフリートの管理