21 PDBに対するOracle Resource Managerの使用
PL/SQLパッケージ・プロシージャを使用して、Oracle Resource Manager (リソース・マネージャ)によるマルチテナント・コンテナ・データベース(CDB)内のプラガブル・データベース(PDB)へのリソース割当てを管理します。
この章では、次の前提条件を満たしていることを前提としています。
-
CDBを構成および管理する方法について理解しています。
-
リソース・マネージャを使用して非CDBのリソースを割り当てる方法について理解しています。
ノート:
-
この章のタスクは、SQL*PlusまたはOracle SQL Developerを使用して実行できます。
-
リソース・マネージャは、Oracle Enterprise Manager Cloud Control (Cloud Control)のグラフィカル・ユーザー・インタフェースで管理することもできます。
-
単純にするために、この章ではPDB、アプリケーション・ルートおよびアプリケーションPDBを「PDB」と呼びます。
この章のトピックは、次のとおりです:
- マルチテナント環境でのOracle Resource Managerの概要
CDBでは、複数のPDB内のワークロードがシステム・リソースおよびCDBリソースについて競合する場合があります。リソース・プランはこの問題を解決します。 - CDBリソース・プランの管理
CDBでは、PDBの優先度のレベルが異なる場合があります。CDBリソース・プランを作成し、これらの優先度に従ってPDBごとにリソースを分配できます。 - PDBリソース・プランの管理
個々のPDBのリソース・プランを作成し、有効化および変更できます。 - Oracle Database Resource Managerで管理されるPDBの監視
動的パフォーマンス・ビューのセットにより、PDBに対するOracle Database Resource Managerの設定結果を監視できます。
関連項目:
-
Cloud Controlを使用したCDBでのリソース・マネージャの管理について学習するには、「Cloud ControlでのPDBに対するOracle Resource Managerの使用」を参照してください
-
Resource Managerについてさらに学習するには、『Oracle Database管理者ガイド』を参照してください
親トピック: マルチテナント環境でのOracle機能の使用
マルチテナント環境でのOracle Resource Managerの概要
CDBでは、複数のPDB内のワークロードがシステム・リソースおよびCDBリソースについて競合する場合があります。リソース・プランはこの問題を解決します。
マルチテナント環境では、リソース・マネージャは2つのレベルで動作します。
-
CDBレベル
リソース・マネージャを使用して、システム・リソースおよびCDBリソースを巡って競合関係にある複数のPDBワークロードを管理できます。PDBへのリソースの割当て方法を指定し、特定のPDBのリソース使用率を制限できます。主要なツールはCDBリソース・プランです。
-
PDBレベル
リソース・マネージャを使用して、各PDB内のワークロードを管理できます。主要なツールはPDBリソース・プランです。
リソース・マネージャにより、次の2つのステップでリソースを割り当てます。
-
システム・リソースの一部を各PDBに割り当てます。
-
特定のPDBでは、前述のステップで取得したシステム・リソースの一部をPDBに接続された各セッションに割り当てます。
ノート:
リソース・マネージャは、ルート内のアクティビティを自動的に管理します。
マルチテナント環境でリソース・マネージャを使用するには、次の前提条件を満たす必要があります。
-
CDBが存在し、PDBを含んでいる必要があります。
-
DBMS_RESOURCE_MANAGER
パッケージを使用するタスクを完了するには、ADMINISTER_RESOURCE_MANAGER
システム権限が必要です。
この項では、次の項目について説明します。
- マルチテナント環境でのリソース管理の目的
リソース・マネージャは、CDBのリソースのより効率的な使用方法を提供できます。 - リソース・プラン・ディレクティブの概要
CDBリソース・プランにより、そのリソース・プラン・ディレクティブ(ディレクティブ)のセットに従って、リソースがそのPDBに割り当てられます。 - バックグラウンド・タスクと管理タスクおよびコンシューマ・グループ
CDBでは、バックグラウンド・タスクおよび管理タスクが、これらのタスクを最適に実行するリソース・マネージャのコンシューマ・グループにマップします。 - マルチテナント・リソース管理の初期化パラメータ
初期化パラメータを使用してPDBのメモリーおよびI/Oを制御します。
関連項目:
-
「CDBの作成および構成」および「PDBおよびアプリケーション・コンテナの作成および削除」を参照してください
-
DBMS_RESOURCE_MANAGER
パッケージについてさらに学習するには、『Oracle Database管理者ガイド』を参照してください
マルチテナント環境でのリソース管理の目的
リソース・マネージャは、CDBのリソースのより効率的な使用方法を提供できます。
CDBに対するリソースの割当てがオペレーティング・システムによって決定される場合は、次のようなワークロード管理に関する問題が生じることがあります。
-
PDB間の不適当なリソースの割当て
オペレーティング・システムはタスク間の優先度付けができないため、すべてのアクティブなプロセスの間で均等にリソースを分配します。このため、1つ以上のPDBで過大なシステム・リソースが使用され、他のPDBでリソースが不足する場合があります。
-
1つのPDB内における不適当なリソースの割当て
1つのPDBに接続された1つ以上のセッションで過大なシステム・リソースが使用され、同じPDBに接続された他のセッションでリソースが不足する場合があります。
-
PDBの一貫性のないパフォーマンス
他のPDBとの間で競合するシステム・リソースの量が一定でない場合は、1つのPDBのパフォーマンスは必ずしも一定になりません。
-
PDBのリソース使用率データの不足
PDBの監視およびチューニングにおいてはリソース使用率データが重要になります。非CDBのリソース使用率データを収集するときに、この非CDBがシステム上で実行されている唯一のデータベースである場合、オペレーティング・システム・モニタリング・ツールを使用できることがあります。ただし、CDBの場合、システム上で複数のPDBが実行されるため、オペレーティング・システム・モニタリング・ツールの有用性は低くなります。
リソース・マネージャは、PDB間およびPDB内でのハードウェア・リソースの割当て方法をCDBで厳密に制御することによって、これらの問題を克服するのに役立ちます。
複数のPDBを含むCDBでは、通常、一部のPDBの重要度が他のPDBより高くなります。リソース・マネージャを使用すると、特定のPDBのリソース使用率を優先度付けしたり制限できます。リソース・マネージャを使用すると、次のことが可能になります。
-
PDBごとにシステム・リソースの共有が異なるよう指定して、より多くのリソースが重要度の高いPDBに割り当てられるようにします。
-
特定のPDBのCPU使用率を制限します。
-
特定のPDBで使用できるパラレル実行サーバーの数を制限します。
-
特定のPDBのメモリー使用率を制限します
-
特定のPDBで保証されるメモリー量を指定します
-
特定のPDBで使用可能なメモリーの最大値を指定します
-
異なるPDBのセットにPDBパフォーマンス・プロファイルを使用します
PDBのセットのパフォーマンス・プロファイルでは、システム・リソースの共有、CPU使用率、およびパラレル実行サーバーの数を指定できます。PDBパフォーマンス・プロファイルにより、個々のPDBではなくプロファイルのリソース・マネージャ・ディレクティブを指定することで、大量のPDBのリソースを管理できます。
-
1つのPDBに接続された様々なセッションのリソース使用率を制限します。
-
特定のPDBによって生成されるI/Oを制限します
-
PDBのリソース使用率を監視します。
リソース・プラン・ディレクティブの概要
CDBリソース・プランにより、そのリソース・プラン・ディレクティブ(ディレクティブ)のセットに従って、リソースがそのPDBに割り当てられます。
CDBリソース・プランとそのリソース・プラン・ディレクティブは親子関係にあります。各ディレクティブは、パフォーマンス・プロファイル内の一連のPDBまたは単一のPDBのいずれかを参照します。
同じCDB内の個々のPDBおよびPDBパフォーマンス・プロファイルの両方にディレクティブを指定できます。現在アクティブなプランの2つのディレクティブで同じPDBまたは同じPDBパフォーマンス・プロファイルを参照することはできません。
この項では、次の項目について説明します。
- PDBパフォーマンス・プロファイル
PDBパフォーマンス・プロファイルは、同じ優先度およびリソース制御が指定された一連のPDBにリソース・プラン・ディレクティブを構成します。 - リソース・プラン・ディレクティブ
ディレクティブは、CPUとパラレル実行サーバーの割当てを制御します。
PDBパフォーマンス・プロファイル
PDBパフォーマンス・プロファイルは、同じ優先度およびリソース制御が指定された一連のPDBにリソース・プラン・ディレクティブを構成します。
たとえば、Gold、SilverおよびBronzeというパフォーマンス・プロファイルを作成できます。各プロファイルには、PDBのタイプの重要性に基づいて一連の様々なディレクティブを指定します。Gold PDBはSilver PDBよりミッション・クリティカルで、Silver PDBはBronze PDBよりミッション・クリティカルです。PDBでは、DB_PERFORMANCE_PROFILE
初期化パラメータを使用してパフォーマンス・プロファイルを指定します。
PDBロックダウン・プロファイルを使用して、SGA_TARGET
、PGA_AGGREGATE_LIMIT
など、リソースを制御するPDB初期化パラメータを指定できます。ロックダウン・プロファイルによって、PDB管理者による設定の変更が防止されます。
パフォーマンス・プロファイルとロックダウン・プロファイルには、一致した名前を使用することをお薦めします。PDBの所有者がプロファイルを切り替えることを防ぐために、PDBパフォーマンス・プロファイルをPDBロックダウン・プロファイルに配置することをお薦めします。
親トピック: リソース・プラン・ディレクティブの概要
リソース・プラン・ディレクティブ
ディレクティブは、CPUとパラレル実行サーバーの割当てを制御します。
ディレクティブにより、PDBまたはPDBパフォーマンス・プロファイルごとに指定する共有値に基づいてPDBへのリソースの割当てを制御できます。共有値が高いほど、リソースは増加します。たとえば、あるPDBに、もう1つのPDBに割り当てられた2倍のリソースを割り当てることを指定でき、このことを行うには、最初のPDBに2番目のPDBの2倍高い共有値を設定します。同様に、最初のPDBパフォーマンス・プロファイルに2番目のPDBパフォーマンス・プロファイルの2倍高い共有値を設定することで、最初のPDBパフォーマンス・プロファイルに、2番目のPDBパフォーマンス・プロファイルに割り当てられたリソースの2倍のリソースを割り当てることを指定できます。設定は、各プロファイルを使用するPDBのセットに適用されます。
PDBおよびPDBパフォーマンス・プロファイルに使用率制限を指定することもできます。制限はPDBまたはパフォーマンス・プロファイルへの割当てを制御します。たとえば、制限を使用して、CDBに使用可能なCPU全体の割合として、PDBで確保できるCPUの量を制御できます。
CDB内の各PDBおよびPDBパフォーマンス・プロファイルに割り当てるリソースを正確に制御するために、共有と使用率制限の両方を一緒に使用できます。
関連項目:
PDBロックダウン・プロファイルの詳細は、セキュリティを強化するためのPDBユーザーの制限についてを参照してください
親トピック: リソース・プラン・ディレクティブの概要
バックグラウンド・タスクと管理タスクおよびコンシューマ・グループ
CDBでは、バックグラウンド・タスクおよび管理タスクが、これらのタスクを最適に実行するリソース・マネージャのコンシューマ・グループにマップします。
リソース・マネージャでは、次のルールを使用して、コンシューマ・グループにタスクをマップします。
-
タスクは、このタスクを開始するコンテナ内のコンシューマ・グループにマップされます。
タスクがCDBルートで開始される場合、このタスクはCDBルート内のコンシューマ・グループにマップします。タスクがPDBで開始される場合、このタスクはPDB内のコンシューマ・グループにマップします。
-
多くのメンテナンス・タスクおよび管理タスクは、コンシューマ・グループに自動的にマップします。
たとえば、自動化されたメンテナンス・タスクは
ORA$AUTOTASK
にマップします。特定の状況では、タスクはコンシューマ・グループにマップしますが、マッピングは変更可能です。このようなタスクとしては、RMANバックアップ、RMANイメージ・コピー、Oracle Data Pumpおよびメモリー内移入があります。
ノート:
事前定義のコンシューマ・グループのマッピング・ルールについてさらに学習するには、『Oracle Database管理者ガイド』を参照してください
マルチテナント・リソース管理の初期化パラメータ
PDBのメモリーおよびI/Oを制御するために初期化パラメータを使用します。
この項では、次の項目について説明します。
- PDBのメモリー関連の初期化パラメータ
複数の初期化パラメータでPDBのメモリー使用を制御します。 - PDBのI/O関連の初期化パラメータ
MAX_IOPS
およびMAX_MBPS
初期化パラメータは、PDBで生成されるディスクI/Oを制限します。 - PDBのCPU関連の初期化パラメータ
CPU_COUNT
初期化パラメータは、Oracle Databaseで使用する使用可能なCPUの数を指定します。
PDBのメモリー関連の初期化パラメータ
複数の初期化パラメータでPDBのメモリー使用を制御します。
PDBが現在のコンテナである場合は、次の表の初期化パラメータによって現在のPDBのメモリー使用が制御されます。これらのパラメータの1つ以上がPDBに対して設定されている場合は、そのCDBおよび他のPDBがそれらの操作に対して十分なメモリーを持っていることを確認します。初期化パラメータは、次の条件を満たす場合にのみ、PDBでのメモリーの使用方法を制御します。
-
NONCDB_COMPATIBLE
初期化パラメータが、CDBルートでfalse
に設定されている。 -
CDBルートに
MEMORY_TARGET
初期化パラメータが設定されていないか、0
(ゼロ)が設定されている。
表21-1 PDBのメモリー使用を制御する初期化パラメータ
初期化パラメータ | 説明 |
---|---|
|
PDBに対して保証される最小バッファ・キャッシュ容量を設定します。 次の要件が満たされている必要があります。
CDBルートで
|
|
PDBに対して保証される最小共有プール容量を設定します。 次の要件が満たされている必要があります。
CDBルートで
|
|
PDBの最小SGAサイズを設定します。 次の要件が満たされている必要があります。
CDBルートで |
|
PDBの最大SGAサイズを設定します。 PDBの |
|
PDBの最大PGAサイズを設定します。 次の要件が満たされている必要があります。
|
|
PDBのターゲット集計PGAサイズを設定します。 次の要件が満たされている必要があります。
|
例21-1 PDBで使用可能な最大平均PGAメモリーの設定
PDBを現在のコンテナとして、次のSQL文を実行して、メモリーとSPFILEの両方でPGA_AGGREGATE_LIMIT
初期化パラメータを90MBに設定します。
ALTER SYSTEM SET PGA_AGGREGATE_LIMIT = 90M SCOPE = BOTH;
例21-2 PDBの最大SGAサイズの設定
iPDBを現在のコンテナとして、次のSQL文を実行して、メモリーとSPFILEの両方でSGA_MIN_SIZE
初期化パラメータを500MBに設定します。
ALTER SYSTEM SET SGA_MIN_SIZE = 500M SCOPE = BOTH;
親トピック: 「マルチテナント・リソース管理の初期化パラメータ」
PDBのI/O関連の初期化パラメータ
MAX_IOPS
およびMAX_MBPS
初期化パラメータは、PDBで生成されるディスクI/Oを制限します。
大量のディスクI/Oはパフォーマンス低下の原因となることがあります。不適切に設計されたSQL、大量トランザクションでの索引や表のスキャンなど、複数の要因によりディスクI/Oが過剰になることがあります。1つのPDBが大量のディスクI/Oを生成している場合、それは同じCDB内の他のPDBのパフォーマンスを低下させることがあります。
次の初期化パラメータの一方または両方を使用して、特定のPDBで生成されるI/Oを制限します。
-
MAX_IOPS
初期化パラメータは、毎秒のI/O操作の数を制限します。 -
MAX_MBPS
初期化パラメータは、毎秒のI/O操作のMB数を制限します。
単一のPDBに対して前述の両方の初期化パラメータを設定した場合、Oracle Databaseは両方の制限を強制します。I/Oリソース管理(IORM)を使用してPDB間のI/Oを管理するOracle Exadataには、これらの制限が強制されないことに注意してください。
CDBルートが現在のコンテナであるときに、これらの初期化パラメータを設定した場合、値はCDB内のすべてのコンテナのデフォルト値になります。アプリケーション・ルートが現在のコンテナであるときに、これらの初期化パラメータを設定した場合、値はアプリケーション・コンテナ内のすべてのアプリケーションPDBのデフォルト値になります。PDBまたはアプリケーションPDBが現在のコンテナであるときに、これらの初期化パラメータを設定した場合、その設定はCDBルートまたはアプリケーション・ルートのデフォルト設定より優先されます。これらのパラメータは非CDBには設定できません。
両方の初期化パラメータのデフォルトは0(ゼロ)です。これらの初期化パラメータがPDBで0 (ゼロ)に設定されていて、CDBルートで0に設定されている場合、PDBのI/O制限はありません。これらの初期化パラメータがアプリケーションPDBで0 (ゼロ)に設定されていて、アプリケーション・ルートで0に設定されている場合、アプリケーションPDBのI/O制限はありません。
制御ファイルやパスワード・ファイルに対するI/O操作などのクリティカルなI/O操作は、制限の対象にならず、制限に達した場合も実行を継続します。ただし、I/O操作数およびI/O操作のMB数の計算では、クリティカルなI/O操作を含むすべてのI/O操作がカウントされます。
DBA_HIST_RSRC_PDB_METRIC
ビューを使用して、PDBに対して合理的なI/O制限を計算できます。制限を計算する際には、IOPS
、IOMBPS
、IOPS_THROTTLE_EXEMPT
およびIOMBPS_THROTTLE_EXEMPT
列の値を考慮します。rsmgr:io rate limit
待機イベントは、制限に達したことを示します。
例21-3 PDBによって生成されるI/Oの制限
PDBを現在のコンテナとして、次のSQL文を実行し、メモリーとSPFILEの両方でMAX_IOPS
初期化パラメータを毎秒1,000 I/O操作の制限に設定します。
ALTER SYSTEM SET MAX_IOPS = 1000 SCOPE = BOTH;
例21-4 PDBによって生成されるI/OのMB数の制限
PDBを現在のコンテナとして、次のSQL文を実行し、メモリーとSPFILEの両方でMAX_MBPS
初期化パラメータを毎秒200MBのI/Oの制限に設定します。
ALTER SYSTEM SET MAX_MBPS = 200 SCOPE = BOTH;
関連項目:
-
MAX_IOPS
初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。 -
MAX_MBPS
初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。
親トピック: 「マルチテナント・リソース管理の初期化パラメータ」
PDBのCPU関連の初期化パラメータ
CPU_COUNT
初期化パラメータには、Oracle Databaseが使用できるCPUの数を指定します。
インスタンス・ケージングは、初期化パラメータを使用して、インスタンスが同時に使用できるCPU数を制限する手法です。PDBレベルでCPU_COUNT
を設定できます。リソース・マネージャが有効化されている場合、PDBはCPU_COUNT
で指定されたCPU数に拘束(制限)されます。
CPU_COUNT
は、そのCDBプランでutilization_limit
ディレクティブと同じように機能します。ただし、CPU_COUNT
制限は、使用率ではなくCPUの数の観点で表されます。utilization_limit
およびCPU_COUNT
の両方を指定した場合は、より低い制限が適用されます。
CPU_COUNT
は、PDBが新しいコンテナに接続された場合にCPU_COUNT
設定は接続されているPDBに残るため便利です。また、Oracle Databaseは、パラレル実行用のパラメータなど、その他多くのPDBパラメータを導出するために、PDBのCPU_COUNT
設定を使用します。
親トピック: 「マルチテナント・リソース管理の初期化パラメータ」
CDBリソース・プランの管理
CDBでは、PDBの優先度のレベルが異なる場合があります。CDBリソース・プランを作成し、これらの優先度に従ってPDBごとにリソースを分配できます。
この項では、次の項目について説明します。
- CDBリソース・プランについて
PDBの共有およびリソース制限を割り当てるCDBリソース・プランを作成します。 - PDBを管理するためのCDBリソース・プランの作成
個々のPDBにCDBリソース・プランを作成し、プランに対してディレクティブを定義するには、DBMS_RESOURCE_MANAGER
パッケージを使用します。 - PDBを管理するためのCDBリソース・プランの作成: 使用例
この使用例では、個々のPDBのCDBリソース・プランの作成に必要な各ステップを示します。 - PDBパフォーマンス・プロファイルを使用したCDBリソース・プランの作成
DBMS_RESOURCE_MANAGER
パッケージを使用してPDBパフォーマンス・プロファイルのCDBリソース・プランを作成し、プランに対してディレクティブを定義します。プロファイルを使用する各PDBには、CDBリソース・プラン・ディレクティブが採用されます。 - PDBパフォーマンス・プロファイルに対するCDBリソース・プランの作成: 使用例
この使用例では、PDBパフォーマンス・プロファイルのCDBリソース・プランの作成に必要な各ステップを示します。 - CDBリソース・プランの有効化
ルートのRESOURCE_MANAGER_PLAN
初期化パラメータを設定して、CDBに対してリソース・マネージャを有効化します。 - CDBリソース・プランの変更
CDBリソース・プランの変更には、プランの更新、PDBのプラン・ディレクティブの作成、更新または削除、デフォルト・ディレクティブの更新などのタスクが含まれます。 - CDBリソース・プランの無効化
ルートのRESOURCE_MANAGER_PLAN
初期化パラメータを解除して、CDBに対してリソース・マネージャを無効化します。 - CDBのプランおよびディレクティブに関する情報の表示
CDBリソース・プラン、CDBリソース・プラン・ディレクティブおよびCDBにおける事前定義のリソース・プランに関する情報を表示できます。
CDBリソース・プランについて
PDBの共有およびリソース制限を割り当てるCDBリソース・プランを作成します。
この項では、次の項目について説明します。
- PDBへのリソース割当ての共有
PDB間でリソースを割り当てるには、PDBまたはパフォーマンス・プロファイルごとに共有値を割り当てます。共有値が高いほど、パフォーマンス・プロファイルを使用する1つまたは複数のPDBに保証されるリソースは多くなります。 - PDBの使用率制限
使用率制限は、特定のPDBまたは特定のPDBパフォーマンス・プロファイルのシステム・リソースの使用を制限します。 - PDBのデフォルト・ディレクティブ
PDBにディレクティブを明示的に定義しない場合、PDBではPDB用のデフォルト・ディレクティブが使用されます。
親トピック: CDBリソース・プランの管理
PDBへのリソース割当ての共有
PDB間でリソースを割り当てるには、PDBまたはパフォーマンス・プロファイルごとに共有値を割り当てます。共有値が高いほど、パフォーマンス・プロファイルを使用する1つまたは複数のPDBに保証されるリソースは多くなります。
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE
プロシージャを使用してPDBの共有値を指定し、DBMS_RESOURCE_MANAGER.CREATE_CDB_PROFILE_DIRECTIVE
プロシージャを使用してPDBパフォーマンス・プロファイルの共有値を指定します。どちらの場合も、shares
パラメータでPDBの共有値を指定します。複数のPDBが同じPDBパフォーマンス・プロファイルを使用できます。
次の図は、CDBリソース・プランに共有値が指定された3つのPDBの例を示しています。
前述の図は、共有の合計数が7 (3+3+1)であることを示しています。PDB salespdb
およびservicespdb
は、それぞれリソースの3/7が保証されていますが、PDB hrpdb
はリソースの1/7が保証されています。ただし、リソースの競合がない場合は、いずれのPDBでも保証された量より多くのリソースを使用できます。
次の表は、前述の図のPDBに対する、共有値に基づくリソース割当てを示しています。表では、PDBのロードでは、割り当てられたすべてのシステム・リソースを消費することを前提としています。
表21-2 サンプルPDBへのリソース割当て
リソース | リソース割当て | 関連項目 |
---|---|---|
CPU |
PDB |
このリソースの詳細は、『Oracle Database管理者ガイド』を参照してください |
パラレル実行サーバー |
PDB |
このリソースの詳細は、『Oracle Database管理者ガイド』を参照してください |
親トピック: CDBリソース・プランについて
PDBの使用率制限
使用率制限により、特定のPDBまたは特定のPDBパフォーマンス・プロファイルのシステム・リソース使用率が抑制されます。
CPUの使用率制限およびパラレル実行サーバーを指定できます。PDBの使用率制限は、CDBリソース・プランで設定されます。
次の表で、PDBの使用率制限およびPDBが使用率制限に達した場合に実行されるリソース・マネージャの処理について説明します。PDBパフォーマンス・プロファイルで指定した制限の場合、制限はPDBパフォーマンス・プロファイルを使用するすべてのPDBに適用されます。たとえば、pdb1
およびpdb20
にはパフォーマンス・プロファイルBRONZE
があり、BRONZE
には10%に設定されている制限がある場合、pdb1
には10%の制限、pdb20
には10%の制限が適用されます。
表21-3 PDBの使用率制限
リソース | リソース使用率制限 | 制限に達した場合のリソース・マネージャの処理 |
---|---|---|
CPU |
PDBに接続されているセッションに対するCPU使用率制限は、 また、PDBでCPUを制限するには、 |
PDBのCPU使用率が使用率制限を超えないように、リソース・マネージャによってPDBセッションが制限されます。 |
パラレル実行サーバー |
パラレル文のキューイングを使用してPDBのパラレル実行サーバーの数を制限できます。制限に達した場合は、データベースによってパラレル問合せがキューに追加されるため、制限はキューイング・ポイントです。 次のいずれかの方法で制限(キューイング・ポイント)を設定できます。
前述の両方の方法で制限が設定されている場合は、2つのうち低い値が使用されます。 ノート: CDBプランで |
PDBで使用されるパラレル実行サーバーの数が制限を超えた場合は、リソース・マネージャがパラレル問合せをキューに追加します。 ノート: CDBでは、パラレル文はPDBおよびCDBレベルの両方で |
次の図は、CDBリソース・プランに共有および使用率制限が指定された3つのPDBの例を示しています。
前述の図では、utilization_limit
およびparallel_server_limit
が両方ともこれらのPDBについて100%に設定されていることから、PDB salespdb
およびservicespdb
に対する使用率制限がないことを示しています。ただし、PDB hrpdb
は、utilization_limit
およびparallel_server_limit
が両方とも70%に設定されていることから、適用可能なシステム・リソースの70%に制限されています。
ノート:
このシナリオでは、PDBのPARALLEL_SERVERS_TARGET
初期化パラメータに低い制限が指定されていないことを前提としています。PDBでパラレル実行サーバーのPARALLEL_SERVERS_TARGET
初期化パラメータに低い制限が指定されている場合は、より低い制限が使用されます。
関連項目:
-
CPU_COUNT
について学習するには、『Oracle Databaseリファレンス』を参照してください
親トピック: CDBリソース・プランについて
PDBのデフォルト・ディレクティブ
PDBにディレクティブを明示的に定義しない場合、PDBではPDB用のデフォルト・ディレクティブが使用されます。
次の表に、PDB用の初期デフォルト・ディレクティブの属性を示します。
表21-4 PDB用の初期デフォルト・ディレクティブ属性
ディレクティブ属性 | 値 |
---|---|
|
1 |
|
100 |
|
100 |
PDBがCDBに接続されており、ディレクティブが定義されていない場合、PDBではPDB用のデフォルト・ディレクティブが使用されます。
新しいPDBにディレクティブを新しく作成できます。また、DBMS_RESOURCE_MANAGER
パッケージのUPDATE_CDB_DEFAULT_DIRECTIVE
プロシージャを使用して、PDB用のデフォルト・ディレクティブ属性値を変更することもできます。
PDBがCDBから切断された場合、PDBのディレクティブは保持されます。同じPDBがCDBに再接続される場合、そのPDB用に定義されたディレクティブが手動で削除されていないと、PDBではこのディレクティブが使用されます。
図21-3に、CDBリソース・プランにおけるデフォルト・ディレクティブの例を示します。
図21-3は、デフォルトPDBディレクティブで、share
が1、utilization_limit
が50%およびparallel_server_limit
が50%となるよう指定されていることを示しています。CDBの一部であり、かつディレクティブが定義されていないすべてのPDBでは、デフォルトPDBディレクティブが使用されます。図21-3は、デフォルトPDBディレクティブを使用するPDB marketingpdb
およびtestingpdb
を示しています。したがって、marketingpdb
およびtestingpdb
は、それぞれ共有が1および使用率制限が50となります。
関連項目:
親トピック: CDBリソース・プランについて
PDBを管理するためのCDBリソース・プランの作成
個々のPDBにCDBリソース・プランを作成し、プランに対してディレクティブを定義するには、DBMS_RESOURCE_MANAGER
パッケージを使用します。
個々のPDBのCDBリソース・プランの一般的な作成ステップは、次のとおりです。
CREATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを作成します。CREATE_CDB_PLAN
プロシージャを使用して、CDBリソース・プランを作成します。CREATE_CDB_PLAN_DIRECTIVE
プロシージャを使用して、PDBにディレクティブを作成します。- (オプション)
UPDATE_CDB_DEFAULT_DIRECTIVE
プロシージャを使用して、デフォルトPDBディレクティブを更新します。 VALIDATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを検証します。SUBMIT_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを発行します。
親トピック: CDBリソース・プランの管理
PDBを管理するためのCDBリソース・プランの作成: 使用例
この使用例では、個々のPDBのCDBリソース・プランの作成に必要な各ステップを示します。
この使用例では、newcdb
という名前のCDBにCDBリソース・プランを作成する場合を想定しています。プランには、PDBごとにディレクティブを含めます。また、この使用例では、デフォルト・ディレクティブおよびAutoTaskディレクティブも更新します。
ディレクティブは、DBMS_RESOURCE_MANAGER
パッケージ内の各種プロシージャを使用して定義されます。各ディレクティブの属性は、これらのプロシージャのパラメータを使用して定義されます。表21-5で、プランにおけるディレクティブのタイプについて説明します。
表21-5 CDBリソース・プランにおけるPDBディレクティブの属性
ディレクティブ属性 | 説明 | 関連項目 |
---|---|---|
|
CPUリソースおよびパラレル実行サーバー・リソースのリソース割当ての共有。 |
|
|
CPUのリソース使用率制限。 |
|
|
パラレル文をキューイングするまでに、PDBで使用できるパラレル実行サーバーの最大割合。 PDBに対して ノート: CDBプランで |
表21-6で、CDBリソース・プランにより、表21-5で説明されているディレクティブ属性を使用してリソースがそのPDBにどのように割り当てられるかについて説明します。
表21-6 CDBリソース・プランにおけるPDBのサンプル・ディレクティブ
PDB | sharesディレクティブ | utilization_limitディレクティブ | parallel_server_limitディレクティブ |
---|---|---|---|
|
3 |
無制限 |
無制限 |
|
3 |
無制限 |
無制限 |
|
1 |
70 |
70 |
デフォルト |
1 |
50 |
50 |
AutoTask |
1 |
75 |
75 |
PDB salespdb
およびservicespdb
は、CDB内の他のPDBよりも重要です。したがって、これらに対しては、高い共有(3)、無制限のCPU使用率リソースおよび無制限のパラレル実行サーバー・リソースが確保されます。
デフォルト・ディレクティブは、特定のディレクティブが定義されていないPDBに適用されます。この使用例では、CDBに、デフォルト・ディレクティブを使用する複数のPDBが含まれていると想定しています。この使用例では、デフォルト・ディレクティブを更新します。
さらに、この使用例では、自動タスク・ディレクティブも更新します。自動タスク・ディレクティブは、ルート・メンテナンス・ウィンドウで実行される自動メンテナンス・タスクに適用されます。
CDBリソース・プランを作成するには:
-
次の
CREATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを作成します。exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
次の
CREATE_CDB_PLAN
プロシージャを使用して、newcdb_plan
という名前のCDBリソース・プランを作成します。BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN( plan => 'newcdb_plan', comment => 'CDB resource plan for newcdb'); END; /
-
CREATE_CDB_PLAN_DIRECTIVE
プロシージャを使用して、PDBにCDBリソース・プラン・ディレクティブを作成します。各ディレクティブにより、特定のPDBへのリソースの割当て方法が指定されます。表21-6で、この使用例のPDB
salespdb
、servicespdb
およびhrpdb
のディレクティブについて説明します。次のプロシージャを実行して、これらのディレクティブを作成します。BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE( plan => 'newcdb_plan', pluggable_database => 'salespdb', shares => 3, utilization_limit => 100, parallel_server_limit => 100); END; / BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE( plan => 'newcdb_plan', pluggable_database => 'servicespdb', shares => 3, utilization_limit => 100, parallel_server_limit => 100); END; / BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE( plan => 'newcdb_plan', pluggable_database => 'hrpdb', shares => 1, utilization_limit => 70, parallel_server_limit => 70); END; /
このCDB内の他のすべてのPDBでは、デフォルトPDBディレクティブが使用されます。
-
PDBの現在のデフォルトCDBリソース・プラン・ディレクティブが要件を満たしていない場合、
UPDATE_CDB_DEFAULT_DIRECTIVE
プロシージャを使用してディレクティブを更新します。デフォルト・ディレクティブは、特定のディレクティブが定義されていないPDBに適用されます。詳細は、「PDBのデフォルト・ディレクティブ」を参照してください。
表21-6で、この使用例のPDBで使用されているデフォルト・ディレクティブについて説明します。次のプロシージャを実行して、デフォルト・ディレクティブを更新します。
BEGIN DBMS_RESOURCE_MANAGER.UPDATE_CDB_DEFAULT_DIRECTIVE( plan => 'newcdb_plan', new_shares => 1, new_utilization_limit => 50, new_parallel_server_limit => 50); END; /
-
次の
VALIDATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを検証します。exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
次の
SUBMIT_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを発行します。exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
親トピック: CDBリソース・プランの管理
PDBパフォーマンス・プロファイルを使用するCDBリソース・プランの作成
DBMS_RESOURCE_MANAGER
パッケージを使用してPDBパフォーマンス・プロファイルのCDBリソース・プランを作成し、プランに対してディレクティブを定義します。プロファイルを使用する各PDBには、CDBリソース・プラン・ディレクティブが採用されます。
PDBパフォーマンス・プロファイルのあるCDBリソース・プランの一般的な作成ステップは、次のとおりです。
CREATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを作成します。CREATE_CDB_PLAN
プロシージャを使用して、CDBリソース・プランを作成します。CREATE_CDB_PROFILE_DIRECTIVE
プロシージャを使用して、PDBパフォーマンス・プロファイルのディレクティブを作成します。- (オプション)
UPDATE_CDB_DEFAULT_DIRECTIVE
プロシージャを使用して、デフォルトPDBディレクティブを更新します。 VALIDATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを検証します。SUBMIT_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを発行します。- プロファイルを使用する各PDBについて、
DB_PERFORMANCE_PROFILE
初期化パラメータを設定し、プロファイル名を指定します。
親トピック: CDBリソース・プランの管理
PDBパフォーマンス・プロファイルに対するCDBリソース・プランの作成: 使用例
この使用例では、PDBパフォーマンス・プロファイルに対するCDBリソース・プランの作成に必要な各ステップを示します。
この使用例では、newcdb
という名前のCDBにCDBリソース・プランを作成する場合を想定しています。プランには、PDBパフォーマンス・プロファイルごとにディレクティブを含めます。また、この使用例では、デフォルト・ディレクティブおよびAutoTaskディレクティブも更新します。
CDBリソース・プランで、各プロファイルに名前を付けます。各PDBで、DB_PERFORMANCE_PROFILE
初期化パラメータを設定して、PDBが使用するPDBパフォーマンス・プロファイルを指定します。
ディレクティブは、DBMS_RESOURCE_MANAGER
パッケージ内の各種プロシージャを使用して定義されます。各ディレクティブの属性は、これらのプロシージャのパラメータを使用して定義されます。次の表で、プランにおけるディレクティブのタイプについて説明します。
表21-7 CDBリソース・プランにおけるPDBパフォーマンス・プロファイル・ディレクティブの属性
ディレクティブ属性 | 説明 | 関連項目 |
---|---|---|
|
CPUリソースおよびパラレル実行サーバー・リソースのリソース割当ての共有。 |
「PDBへのリソース割当ての共有」 |
|
CPUのリソース使用率制限。 |
「PDBの使用率制限」 |
|
PDBで使用できるパラレル実行サーバーの最大割合。 PDBパフォーマンス・プロファイルに対して |
次の表で、CDBリソース・プランにより、表21-7で説明されているディレクティブ属性を使用してリソースがそのPDBパフォーマンス・プロファイルにどのように割り当てられるかについて説明します。
表21-8 CDBリソース・プランにおけるPDBパフォーマンス・プロファイルのサンプル・ディレクティブ
PDB | sharesディレクティブ | utilization_limitディレクティブ | parallel_server_limitディレクティブ |
---|---|---|---|
|
3 |
無制限 |
無制限 |
|
2 |
40 |
40 |
|
1 |
20 |
20 |
デフォルト |
1 |
10 |
10 |
AutoTask |
2 |
60 |
60 |
デフォルト・ディレクティブは、特定のディレクティブが定義されていないPDBに適用されます。この使用例では、CDBに、デフォルト・ディレクティブを使用する複数のPDBが含まれていると想定しています。この使用例では、デフォルト・ディレクティブを更新します。
さらに、この使用例では、自動タスク・ディレクティブも更新します。自動タスク・ディレクティブは、ルート・メンテナンス・ウィンドウで実行される自動メンテナンス・タスクに適用されます。
PDBパフォーマンス・プロファイルに対してCDBリソース・プランを作成するには:
-
プロファイルを使用する各PDBについて、
DB_PERFORMANCE_PROFILE
初期化パラメータをそのPDBが使用するプロファイルの名前に設定します。-
ALTER SYSTEM
文を実行してパラメータを設定します。たとえば、PDBを現在のコンテナとして、次のSQL文を実行します。
ALTER SYSTEM SET DB_PERFORMANCE_PROFILE=gold SCOPE=spfile;
-
PDBをクローズします。
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
-
PDBをオープンします。
ALTER PLUGGABLE DATABASE OPEN;
-
-
次の
CREATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを作成します。exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
次の
CREATE_CDB_PLAN
プロシージャを使用して、newcdb_plan
という名前のCDBリソース・プランを作成します。BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN( plan => 'newcdb_plan', comment => 'CDB resource plan for newcdb'); END; /
-
CREATE_CDB_PLAN_DIRECTIVE
プロシージャを使用して、PDBにCDBリソース・プラン・ディレクティブを作成します。各ディレクティブにより、特定のPDBへのリソースの割当て方法が指定されます。表21-6は、このシナリオの
gold
、silver
およびbronze
プロファイルのディレクティブを示しています。次のプロシージャを実行して、これらのディレクティブを作成します。BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PROFILE_DIRECTIVE( plan => 'newcdb_plan', profile => 'gold', shares => 3, utilization_limit => 100, parallel_server_limit => 100); END; / BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PROFILE_DIRECTIVE( plan => 'newcdb_plan', profile => 'silver', shares => 2, utilization_limit => 40, parallel_server_limit => 40); END; / BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PROFILE_DIRECTIVE( plan => 'newcdb_plan', profile => 'bronze', shares => 1, utilization_limit => 20, parallel_server_limit => 20); END; /
このCDB内の他のすべてのPDBでは、デフォルトPDBディレクティブが使用されます。
-
PDBの現在のデフォルトCDBリソース・プラン・ディレクティブが要件を満たしていない場合、
UPDATE_CDB_DEFAULT_DIRECTIVE
プロシージャを使用してディレクティブを更新します。デフォルト・ディレクティブは、特定のディレクティブが定義されていないPDBに適用されます。
表21-6で、この使用例のPDBで使用されているデフォルト・ディレクティブについて説明します。次のプロシージャを実行して、デフォルト・ディレクティブを更新します。
BEGIN DBMS_RESOURCE_MANAGER.UPDATE_CDB_DEFAULT_DIRECTIVE( plan => 'newcdb_plan', new_shares => 1, new_utilization_limit => 10, new_parallel_server_limit => 10); END; /
-
次の
VALIDATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを検証します。exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
次の
SUBMIT_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを発行します。exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
関連項目:
「PDBのデフォルト・ディレクティブ」親トピック: CDBリソース・プランの管理
CDBリソース・プランの有効化
ルートのRESOURCE_MANAGER_PLAN
初期化パラメータを設定して、CDBに対してリソース・マネージャを有効化します。
このパラメータにより、CDBの現行インスタンスに使用されるトップレベルのプランが指定されます。このパラメータでプランを指定しない場合、リソース・マネージャは有効になりません。
前提条件
CDBリソース・プランを有効化する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
CDBリソース・プランを有効化するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
次のいずれかのアクションを実行します。
-
ALTER SYSTEM
文を使用して、RESOURCE_MANAGER_PLAN
初期化パラメータをCDBリソース・プランに設定します。次の例では、
ALTER SYSTEM
文を使用して、CDBリソース・プランをnewcdb_plan
に設定しています。ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'newcdb_plan';
-
テキスト形式の初期化パラメータ・ファイルで、
RESOURCE_MANAGER_PLAN
初期化パラメータをCDBリソース・プランに設定し、CDBを再起動します。次の例では、初期化パラメータ・ファイルのCDBリソース・プランを
newcdb_plan
に設定しています。RESOURCE_MANAGER_PLAN = 'newcdb_plan'
-
関連項目:
-
Oracle Schedulerを使用してCDBリソース・プランの変更をスケジュールする方法を学習するには、『Oracle Database管理者ガイド』を参照してください
親トピック: CDBリソース・プランの管理
CDBリソース・プランの変更
CDBリソース・プランの変更には、プランの更新、PDBのプラン・ディレクティブの作成、更新または削除、デフォルト・ディレクティブの更新などのタスクが含まれます。
この項では、次の項目について説明します。
- CDBリソース・プランの更新
UPDATE_CDB_PLAN
プロシージャを使用すると、CDBリソース・プランのコメントを変更して更新できます。 - PDBのCDBリソース・プラン・ディレクティブの管理
PDBのCDBリソース・プラン・ディレクティブを作成、更新および削除できます。 - PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブの管理
PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを作成、更新および削除できます。 - CDBリソース・プランにおけるPDBのデフォルト・ディレクティブの更新
UPDATE_CDB_DEFAULT_DIRECTIVE
プロシージャを使用して、CDBリソース・プランでPDBのデフォルト・ディレクティブを更新できます。デフォルト・ディレクティブは、特定のディレクティブが定義されていないPDBに適用されます。 - CDBリソース・プランにおけるメンテナンス・タスクのデフォルト・ディレクティブの更新
UPDATE_CDB_AUTOTASK_DIRECTIVE
プロシージャを使用して、CDBリソース・プランでAutoTaskディレクティブを更新できます。自動タスク・ディレクティブは、ルート・メンテナンス・ウィンドウで実行される自動メンテナンス・タスクに適用されます。 - CDBリソース・プランの削除
DELETE_CDB_PLAN
プロシージャを使用して、CDBリソース・プランを削除できます。
親トピック: CDBリソース・プランの管理
CDBリソース・プランの更新
UPDATE_CDB_PLAN
プロシージャを使用すると、CDBリソース・プランのコメントを変更して更新できます。
前提条件
CDBリソース・プランを更新する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
CDBリソース・プランを更新するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
UPDATE_CDB_PLAN
プロシージャを実行して、new_comment
パラメータに新しいコメントを入力します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランのコメントが変更されます。BEGIN DBMS_RESOURCE_MANAGER.UPDATE_CDB_PLAN( plan => 'newcdb_plan', new_comment => 'CDB plan for PDBs in newcdb'); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
親トピック: CDBリソース・プランの変更
PDBのCDBリソース・プラン・ディレクティブの管理
PDBのCDBリソース・プラン・ディレクティブを作成、更新および削除できます。
この項では、次の項目について説明します。
- PDBの新規CDBリソース・プラン・ディレクティブの作成
CDBにPDBを作成する場合、CREATE_CDB_PLAN_DIRECTIVE
プロシージャを使用して、PDBにCDBリソース・プラン・ディレクティブを作成できます。このディレクティブにより、新しいPDBへのリソースの割当て方法が指定されます。 - PDBのCDBリソース・プラン・ディレクティブの更新
UPDATE_CDB_PLAN_DIRECTIVE
プロシージャを使用して、PDBのCDBリソース・プラン・ディレクティブを更新できます。このディレクティブにより、PDBへのリソースの割当て方法が指定されます。 - PDBのCDBリソース・プラン・ディレクティブの削除
DELETE_CDB_PLAN_DIRECTIVE
プロシージャを使用して、PDBのCDBリソース・プラン・ディレクティブを削除できます。
親トピック: CDBリソース・プランの変更
PDBの新規CDBリソース・プラン・ディレクティブの作成
CDBにPDBを作成する場合、CREATE_CDB_PLAN_DIRECTIVE
プロシージャを使用して、PDBにCDBリソース・プラン・ディレクティブを作成できます。このディレクティブにより、新しいPDBへのリソースの割当て方法が指定されます。
前提条件
PDBの新しいCDBリソース・プラン・ディレクティブを作成する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
PDBに新しいCDBリソース・プラン・ディレクティブを作成するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
CREATE_CDB_PLAN_DIRECTIVE
プロシージャを実行して、新しいPDBに適切な値を指定します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランのoperpdb
という名前のPDBにリソースが割り当てられます。BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE( plan => 'newcdb_plan', pluggable_database => 'operpdb', shares => 1, utilization_limit => 20, parallel_server_limit => 30); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
PDBのCDBリソース・プラン・ディレクティブの更新
UPDATE_CDB_PLAN_DIRECTIVE
プロシージャを使用して、PDBのCDBリソース・プラン・ディレクティブを更新できます。このディレクティブにより、PDBへのリソースの割当て方法が指定されます。
前提条件
PDBのCDBリソース・プラン・ディレクティブを更新する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たしていることを確認します。
PDBのCDBリソース・プラン・ディレクティブを更新するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
UPDATE_CDB_PLAN_DIRECTIVE
プロシージャを実行して、PDBに新しいリソース割当て値を指定します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランのoperpdb
という名前のPDBに対するリソース割当てが更新されます。BEGIN DBMS_RESOURCE_MANAGER.UPDATE_CDB_PLAN_DIRECTIVE( plan => 'newcdb_plan', pluggable_database => 'operpdb', new_shares => 1, new_utilization_limit => 10, new_parallel_server_limit => 20); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
PDBのCDBリソース・プラン・ディレクティブの削除
DELETE_CDB_PLAN_DIRECTIVE
プロシージャを使用して、PDBのCDBリソース・プラン・ディレクティブを削除できます。
PDBを切断または削除すると、PDBのディレクティブが削除される場合があります。ただし、ディレクティブは保持でき、将来PDBがCDBに接続された場合に、既存のディレクティブがPDBに適用されます。
前提条件
PDBのCDBリソース・プラン・ディレクティブを削除する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
PDBのCDBリソース・プラン・ディレクティブを削除するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
DELETE_CDB_PLAN_DIRECTIVE
プロシージャを実行して、CDBリソース・プランおよびPDBを指定します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランのoperpdb
という名前のPDBに対するディレクティブが削除されます。BEGIN DBMS_RESOURCE_MANAGER.DELETE_CDB_PLAN_DIRECTIVE( plan => 'newcdb_plan', pluggable_database => 'operpdb'); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブの管理
PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを作成、更新および削除できます。
この項では、次の項目について説明します。
- PDBパフォーマンス・プロファイルの新規CDBリソース・プラン・ディレクティブの作成
新規PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブは、CREATE_CDB_PROFILE_DIRECTIVE
プロシージャを使用して作成できます。ディレクティブにより、新しいプロファイルを使用するすべてのPDBのリソースの割当て方法を指定します。 - PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブの更新
UPDATE_CDB_PROFILE_DIRECTIVE
プロシージャを使用して、PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを更新します。このディレクティブにより、PDBパフォーマンス・プロファイルを使用するPDBへのリソースの割当て方法が指定されます。 - PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブの削除
DELETE_CDB_PROFILE_DIRECTIVE
プロシージャを使用して、PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを削除できます。
親トピック: CDBリソース・プランの変更
PDBパフォーマンス・プロファイルの新規CDBリソース・プラン・ディレクティブの作成
新規PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブは、CREATE_CDB_PROFILE_DIRECTIVE
プロシージャを使用して作成できます。ディレクティブにより、新しいプロファイルを使用するすべてのPDBのリソースの割当て方法を指定します。
前提条件
PDBパフォーマンス・プロファイルの新しいCDBリソース・プラン・ディレクティブを作成する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
PDBパフォーマンス・プロファイルに新しいCDBリソース・プラン・ディレクティブを作成するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
CREATE_CDB_PROFILE_DIRECTIVE
プロシージャを実行して、新しいPDBパフォーマンス・プロファイルに適切な値を指定します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランのcopper
という名前のPDBパフォーマンス・プロファイルにリソースが割り当てられます。BEGIN DBMS_RESOURCE_MANAGER.CREATE_CDB_PROFILE_DIRECTIVE( plan => 'newcdb_plan', profile => 'copper', shares => 1, utilization_limit => 20, parallel_server_limit => 30); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
ノート:
PDBで新規プロファイルを使用するには、PDBのDB_PERFORMANCE_PROFILE
初期化パラメータがプロファイル名に設定されている必要があります。
PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブの更新
UPDATE_CDB_PROFILE_DIRECTIVE
プロシージャを使用して、PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを更新します。このディレクティブにより、PDBパフォーマンス・プロファイルを使用するPDBへのリソースの割当て方法が指定されます。
PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを更新する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを更新するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
UPDATE_CDB_PROFILE_DIRECTIVE
プロシージャを実行して、PDBパフォーマンス・プロファイルに新しいリソース割当て値を指定します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランのcopper
という名前のPDBパフォーマンス・プロファイルに対するリソース割当てが更新されます。BEGIN DBMS_RESOURCE_MANAGER.UPDATE_CDB_PROFILE_DIRECTIVE( plan => 'newcdb_plan', profile => 'copper', new_shares => 1, new_utilization_limit => 10, new_parallel_server_limit => 20); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブの削除
DELETE_CDB_PROFILE_DIRECTIVE
プロシージャを使用して、PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを削除できます。
PDBでパフォーマンス・プロファイルを使用しない場合は、プロファイルのディレクティブを削除できます。
前提条件
PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを削除する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
PDBパフォーマンス・プロファイルのCDBリソース・プラン・ディレクティブを削除するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
DELETE_CDB_PROFILE_DIRECTIVE
プロシージャを実行して、CDBリソース・プランおよびPDBパフォーマンス・プロファイルを指定します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランのoperpdb
という名前のPDBに対するディレクティブが削除されます。BEGIN DBMS_RESOURCE_MANAGER.DELETE_CDB_PLAN_DIRECTIVE( plan => 'newcdb_plan', profile => 'operpdb'); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
CDBリソース・プランにおけるPDBのデフォルト・ディレクティブの更新
UPDATE_CDB_DEFAULT_DIRECTIVE
プロシージャを使用して、CDBリソース・プランでPDBのデフォルト・ディレクティブを更新できます。デフォルト・ディレクティブは、特定のディレクティブが定義されていないPDBに適用されます。
前提条件
CDBリソース・プランでPDBのデフォルト・ディレクティブを更新する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
CDBリソース・プランでPDBのデフォルトディレクティブを更新するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
UPDATE_CDB_DEFAULT_DIRECTIVE
プロシージャを実行して、適切なデフォルトのリソース割当て値を指定します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランにおけるPDBのデフォルト・ディレクティブが更新されます。BEGIN DBMS_RESOURCE_MANAGER.UPDATE_CDB_DEFAULT_DIRECTIVE( plan => 'newcdb_plan', new_shares => 2, new_utilization_limit => 40); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
関連項目:
-
詳細は、「PDBのデフォルト・ディレクティブ」を参照してください。
-
「CDB内のコンテナへのアクセスについて」を参照してください。
親トピック: CDBリソース・プランの変更
CDBリソース・プランにおけるメンテナンス・タスクのデフォルト・ディレクティブの更新
UPDATE_CDB_AUTOTASK_DIRECTIVE
プロシージャを使用して、CDBリソース・プランでAutoTaskディレクティブを更新できます。自動タスク・ディレクティブは、ルート・メンテナンス・ウィンドウで実行される自動メンテナンス・タスクに適用されます。
前提条件
CDBリソース・プランでメンテナンス・タスクのデフォルト・ディレクティブを更新する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
CDBリソース・プランでメンテナンス・タスクのAutoTaskディレクティブを更新するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
UPDATE_CDB_AUTOTASK_DIRECTIVE
プロシージャを実行して、適切なAutoTaskのリソース割当て値を指定します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランにおけるメンテナンス・タスクのAutoTaskディレクティブが更新されます。BEGIN DBMS_RESOURCE_MANAGER.UPDATE_CDB_AUTOTASK_DIRECTIVE( plan => 'newcdb_plan', new_shares => 2, new_utilization_limit => 60); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
親トピック: CDBリソース・プランの変更
CDBリソース・プランの削除
DELETE_CDB_PLAN
プロシージャを使用して、CDBリソース・プランを削除できます。
リソース・プランを無効にする必要があります。CDBリソース・プランが必要なくなった場合は、このプランを削除できます。異なるCDBリソース・プランを有効化したり、CDBに対してリソース・マネージャを無効化できます。
前提条件
CDBリソース・プランを削除する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
CDBリソース・プランを削除するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
DELETE_CDB_PLAN
プロシージャを実行して、CDBリソース・プランを指定します。たとえば、次のプロシージャを実行すると、
newcdb_plan
CDBリソース・プランが削除されます。BEGIN DBMS_RESOURCE_MANAGER.DELETE_CDB_PLAN( plan => 'newcdb_plan'); END; /
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
関連項目:
親トピック: CDBリソース・プランの変更
CDBリソース・プランの無効化
RESOURCE_MANAGER_PLAN
初期化パラメータの設定を解除して、CDBに対してリソース・マネージャを無効化します。
PDB間およびPDB内のいずれの場合もCPUの管理を有効化するには、PDBの共有または使用率制限を指定するCDBリソース・プランが必要です。PDBの共有または使用率制限が指定されたリソース・プランが有効で、CDBリソース・プランが指定されていない場合、CDBリソース・プランはDEFAULT_CDB_PLAN
に設定されます。この設定では、すべてのPDBに等しい共有が提供され、使用率制限は指定されません。CDB全体のCPUリソース管理を無効化するには、RESOURCE_MANAGER_PLAN
をORA$INTERNAL_CDB_PLAN
に設定します。
前提条件
CDBリソース・プランを無効化する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
CDBリソース・プランを無効化するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
-
次のいずれかのアクションを実行します。
-
ALTER SYSTEM
文を使用して、CDBに対してRESOURCE_MANAGER_PLAN
初期化パラメータの設定を解除します。次の例では、
ALTER SYSTEM
文を使用して、RESOURCE_MANAGER_PLAN
初期化パラメータの設定を解除しています。ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = '';
-
初期化パラメータ・ファイルで、
RESOURCE_MANAGER_PLAN
初期化パラメータの設定を解除し、CDBを再起動します。次の例では、初期化パラメータ・ファイルの
RESOURCE_MANAGER_PLAN
初期化パラメータの設定を解除しています。RESOURCE_MANAGER_PLAN =
-
関連項目:
-
データベースの起動の詳細は、『Oracle Database管理者ガイド』を参照してください
親トピック: CDBリソース・プランの管理
CDBのプランおよびディレクティブに関する情報の表示
CDBリソース・プラン、CDBリソース・プラン・ディレクティブおよびCDBにおける事前定義のリソース・プランに関する情報を表示できます。
この項では、次の項目について説明します。
- CDBリソース・プランの表示
DBA_CDB_RSRC_PLANS
ビューを使用して、CDBに定義されているすべてのCDBリソース・プランを表示する例を示します。 - CDBリソース・プラン・ディレクティブの表示
DBA_CDB_RSRC_PLAN_DIRECTIVES
ビューを使用して、CDB内のすべてのCDBリソース・プランで定義されたすべてのディレクティブを表示する例を示します。
関連項目:
Oracle Database Resource Managerの監視の詳細は、『Oracle Database管理者ガイド』を参照してください
親トピック: CDBリソース・プランの管理
CDBリソース・プランの表示
DBA_CDB_RSRC_PLANS
ビューを使用して、CDBに定義されているすべてのCDBリソース・プランを表示する例を示します。
DEFAULT_CDB_PLAN
は、Oracle Databaseに付属のデフォルトCDBプランです。使用要件に応じて、このデフォルト・プランを使用できます。
CDBリソース・プランを表示するには:
-
SQL*PlusまたはSQL Developerを起動し、CDBルートにログインします。
-
次の問合せを実行します。
COLUMN PLAN FORMAT A30 COLUMN STATUS FORMAT A10 COLUMN COMMENTS FORMAT A35 SELECT PLAN, STATUS, COMMENTS FROM DBA_CDB_RSRC_PLANS ORDER BY PLAN;
出力は次のようになります。
PLAN STATUS COMMENTS ------------------------------ ---------- ----------------------------------- DEFAULT_CDB_PLAN Default CDB plan DEFAULT_MAINTENANCE_PLAN Default CDB maintenance plan NEWCDB_PLAN CDB plan for PDBs in newcdb ORA$INTERNAL_CDB_PLAN Internal CDB plan
ノート:
ペンディング・エリア内のプランのステータスはPENDING
です。ペンディング・エリア内のプランは編集中です。ペンディング・エリアに存在しないすべてのプランのステータスは、NULL
です。
関連項目:
親トピック: CDBのプランおよびディレクティブに関する情報の表示
CDBリソース・プラン・ディレクティブの表示
DBA_CDB_RSRC_PLAN_DIRECTIVES
を使用して、CDB内のすべてのCDBリソース・プランで定義されたすべてのディレクティブを表示する例を示します。
DEFAULT_CDB_PLAN
は、Oracle Databaseに付属のデフォルトCDBプランです。DEFAULT_CDB_PLAN
では、各PDBに共有が1および使用率制限が100と指定されています。使用要件に応じて、このデフォルト・プランを使用できます。ORA$DEFAULT_PDB_DIRECTIVE
は、PDBのデフォルト・ディレクティブです。
CDBリソース・プラン・ディレクティブを表示するには:
-
SQL*PlusまたはSQL Developerを起動し、CDBルートにログインします。
-
次の問合せを実行します。
COLUMN PLAN HEADING 'Plan' FORMAT A24 COLUMN PLUGGABLE_DATABASE HEADING 'Pluggable Database' FORMAT A25 COLUMN SHARES HEADING 'Shares' FORMAT 999 COLUMN UTILIZATION_LIMIT HEADING 'Utilization|Limit' FORMAT 999 COLUMN PARALLEL_SERVER_LIMIT HEADING 'Parallel|Server|Limit' FORMAT 999 SELECT PLAN, PLUGGABLE_DATABASE, SHARES, UTILIZATION_LIMIT, PARALLEL_SERVER_LIMIT FROM DBA_CDB_RSRC_PLAN_DIRECTIVES ORDER BY PLAN;
出力は次のようになります。
Parallel Utilization Server Plan Pluggable Database Shares Limit Limit ------------------------ ------------------------- ------ ----------- -------- DEFAULT_CDB_PLAN ORA$DEFAULT_PDB_DIRECTIVE 1 100 100 DEFAULT_CDB_PLAN ORA$AUTOTASK 90 100 DEFAULT_MAINTENANCE_PLAN ORA$AUTOTASK 90 100 DEFAULT_MAINTENANCE_PLAN ORA$DEFAULT_PDB_DIRECTIVE 1 100 100 NEWCDB_PLAN HRPDB 1 70 70 NEWCDB_PLAN SALESPDB 3 100 100 NEWCDB_PLAN ORA$DEFAULT_PDB_DIRECTIVE 1 50 50 NEWCDB_PLAN ORA$AUTOTASK 1 75 75 NEWCDB_PLAN SERVICESPDB 3 100 100
前述の出力は、「PDBを管理するためのCDBリソース・プランの作成: 使用例」で作成されて「CDBリソース・プランの変更」で変更された、
newcdb_plan
のディレクティブを示しています。
PDBリソース・プランの管理
個々のPDBのリソース・プランを作成し、有効化および変更できます。
この項では、次の項目について説明します。
- PDBリソース・プランについて
PDBリソース・プランは、このPDB内で特定のPDBのリソースがコンシューマ・グループにどのように割り当てられるかを決定します。 - PDBリソース・プランの作成
PDBリソース・プランは、非CDBのリソース・プランを作成する場合と同じ方法で作成します。プランを作成するには、DBMS_RESOURCE_MANAGER
PL/SQLパッケージ内のプロシージャを使用します。 - PDBリソース・プランの有効化
現在のコンテナがPDBの場合、ALTER SYSTEM
文を使用してRESOURCE_MANAGER_PLAN
初期化パラメータをプランに設定し、PDBリソース・プランを有効化します。 - PDBリソース・プランの変更
DBMS_RESOURCE_MANAGER
パッケージを使用すると、非CDBのリソース・プランを変更する場合と同じ方法でPDBリソース・プランを変更できます。 - PDBリソース・プランの無効化
PDBのRESOURCE_MANAGER_PLAN
初期化パラメータの設定を解除して、PDBリソース・プランを無効化します。
PDBリソース・プランについて
PDBリソース・プランは、このPDB内で特定のPDBのリソースがコンシューマ・グループにどのように割り当てられるかを決定します。
PDBリソース・プランは、非CDBのリソース・プランと似ています。PDBリソース・プランは、PDBごとに割り当てられるリソース量を決定するCDBリソース・プランとは異なります。
CDBでは、次の制限事項がPDBリソース・プランに適用されます。
-
PDBリソース・プランは、サブプランを含むことができません。
-
PDBリソース・プランには、最大8個のコンシューマ・グループを設定できます。
-
PDBリソース・プランで、複数レベルのスケジューリング・ポリシーを使用することはできません。
非CDBを使用するPDBを作成するときに、非CDBにリソース・プランが含まれていない場合は、これらのリソース・プランが前述の制限事項に従っていないことがあります。この場合、これらのリソース・プランは、Oracle Databaseによってこれらの要件を満たす同等のPDBリソース・プランに自動的に変換されます。元のリソース・プランおよびディレクティブは、DBA_RSRC_PLANS
およびDBA_RSRC_PLAN_DIRECTIVES
ビューにLEGACY
ステータスで記録されます。
この項では、次の項目について説明します。
- PDBリソース・プランを作成する場合のCDBリソース・プランの要件
PDBリソース・プランを作成する場合は、CDBリソース・プランが特定の要件を満たしている必要があります。 - PDBリソース・プラン: 例
CDBリソース・プランとPDBリソース・プランには、1対多の関係があります。
関連項目:
-
リソース・プランについてさらに学習するには、『Oracle Database管理者ガイド』を参照してください
親トピック: PDBリソース・プランの管理
PDBリソース・プランを作成する場合のCDBリソース・プランの要件
PDBリソース・プランを作成する場合は、CDBリソース・プランが特定の要件を満たしている必要があります。
CDBリソース・プランのディレクティブを作成するには、DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE
プロシージャを使用します。PDBリソース・プランにディレクティブを作成する場合は、同じパッケージ内のCREATE_PLAN_DIRECTIVE
プロシージャを使用します。1つ以上のPDBリソース・プランを作成するときにCDBリソース・プランがない場合、CDBでは、Oracle Databaseに付属のDEFAULT_CDB_PLAN
が使用されます。
次の表で、CDBリソース・プランの要件および要件が満たされない場合の結果について説明します。「CDBリソース・プラン要件」列で説明されているパラメータ値は、CREATE_CDB_PLAN_DIRECTIVE
プロシージャ用です。「要件が満たされない場合の結果」列で説明されているパラメータ値は、CREATE_PLAN_DIRECTIVE
プロシージャ用です。
表21-9 PDBリソース・プランのためのCDBリソース・プラン要件
リソース | CDBリソース・プラン要件 | 要件が満たされない場合の結果 |
---|---|---|
CPU |
次の要件のいずれかが満たされている必要があります。
これらの値は、特定のPDBのディレクティブまたはデフォルト・ディレクティブに設定できます。 |
PDBリソース・プランのCPU割当てポリシーは規定されません。 PDBリソース・プランの |
パラレル実行サーバー |
次の要件のいずれかが満たされている必要があります。
これらの値は、特定のPDBのディレクティブまたはデフォルト・ディレクティブに設定できます。 |
PDBリソース・プランのパラレル実行サーバー割当てポリシーは、規定されません。 PDBリソース・プランで |
親トピック: PDBリソース・プランについて
PDBリソース・プラン: 例
CDBリソース・プランとPDBリソース・プランには、1対多の関係があります。
次の図に、CDBリソース・プランおよびPDBリソース・プランの例を示します。
前述の図は、PDB servicespdb
のPDBリソース・プランにおける一部のディレクティブを示しています。CDB内の他のPDBにもPDBリソース・プランを作成できます。
親トピック: PDBリソース・プランについて
PDBリソース・プランの作成
PDBリソース・プランは、非CDBのリソース・プランを作成する場合と同じ方法で作成します。プランを作成するには、DBMS_RESOURCE_MANAGER
PL/SQLパッケージ内のプロシージャを使用します。
CDBリソース・プランにより、システム・リソースの一部がPDBに割り当てられます。PDBリソース・プランにより、PDB内でのこの部分の割当て方法が決定します。
PDBリソース・プランの作成に必要なステップの概要は、次のとおりです。
- SQL*Plusで、現在のコンテナがPDBであることを確認します。
CREATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを作成します。CREATE_CONSUMER_GROUP
プロシージャを使用して、コンシューマ・グループを作成、変更または削除します。SET_CONSUMER_GROUP_MAPPING
プロシージャを使用して、セッションをコンシューマ・グループにマップします。CREATE_PLAN
プロシージャを使用して、PDBリソース・プランを作成します。CREATE_PLAN_DIRECTIVE
プロシージャを使用して、PDBリソース・プラン・ディレクティブを作成します。VALIDATE_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを検証します。SUBMIT_PENDING_AREA
プロシージャを使用して、ペンディング・エリアを発行します。
現在のコンテナがPDBであり、これらのステップを完了する場合に必要な権限がユーザーに付与されていることを確認してください。これらのステップの完了の詳細は、『Oracle Database管理者ガイド』を参照してください。
CREATE_SIMPLE_PLAN
プロシージャを使用して、多くの状況に対応できる単純なリソース・プランを作成することもできます。単純なリソース・プランの作成の詳細は、『Oracle Database管理者ガイド』を参照してください。
ノート:
PDBリソース・プランに適用されるいくつかの制限事項があります。詳細は、「PDBリソース・プランについて」を参照してください。
親トピック: PDBリソース・プランの管理
PDBリソース・プランの有効化
現在のコンテナがPDBの場合、ALTER SYSTEM
文を使用してRESOURCE_MANAGER_PLAN
初期化パラメータをプランに設定し、PDBリソース・プランを有効化します。
このパラメータがプランに指定されていない場合、PDBリソース・プランはPDBに対して有効化されません。
前提条件
PDBリソース・プランを有効化する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
PDBリソース・プランを有効化するには:
-
SQL*Plusで、現在のコンテナがPDBであることを確認します。
-
ALTER SYSTEM
文を使用して、RESOURCE_MANAGER_PLAN
初期化パラメータをPDBリソース・プランに設定します。
PDBリソース・プランの変更は、Oracle Schedulerを使用してスケジュールすることもできます。
例21-5 PDBリソース・プランの有効化
次の例では、PDBリソース・プランをsalespdb_plan
に設定しています。
ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'salespdb_plan';
関連項目:
-
Oracle Schedulerを使用してPDBリソース・プランの変更をスケジュールする方法を学習するには、『Oracle Database管理者ガイド』を参照してください
親トピック: PDBリソース・プランの管理
PDBリソース・プランの変更
DBMS_RESOURCE_MANAGER
パッケージを使用すると、非CDBのリソース・プランを変更する場合と同じ方法でPDBリソース・プランを変更できます。
前提条件
PDBリソース・プランを変更する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
PDBリソース・プランを変更するには:
-
SQL*Plusで、現在のコンテナがPDBであることを確認します。
-
ペンディング・エリアを作成します。
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
-
次のタスクのうち1つ以上を完了して、PDBリソース・プランを変更します。
-
UPDATE_CONSUMER_GROUP
プロシージャを使用して、コンシューマ・グループを更新します。 -
DELETE_CONSUMER_GROUP
プロシージャを使用して、コンシューマ・グループを削除します。 -
UPDATE_PLAN
プロシージャを使用して、リソース・プランを更新します。 -
DELETE_PLAN
プロシージャを使用して、リソース・プランを削除します。 -
UPDATE_PLAN_DIRECTIVE
プロシージャを使用して、リソース・プラン・ディレクティブを更新します。 -
DELETE_PLAN_DIRECTIVE
プロシージャを使用して、リソース・プラン・ディレクティブを削除します。
-
-
ペンディング・エリアを検証します。
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
-
ペンディング・エリアを発行します。
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
関連項目:
-
コンシューマ・グループのタスクを完了する手順は、『Oracle Database管理者ガイド』を参照してください
親トピック: PDBリソース・プランの管理
PDBリソース・プランの無効化
PDBのRESOURCE_MANAGER_PLAN
初期化パラメータの設定を解除して、PDBリソース・プランを無効化します。
前提条件
PDBリソース・プランを無効化する前に、「マルチテナント環境でのOracle Resource Managerの概要」で説明されている前提条件を満たします。
PDBリソース・プランを無効化するには:
-
SQL*Plusで、現在のコンテナがPDBであることを確認します。
-
ALTER SYSTEM
文を使用して、PDBのRESOURCE_MANAGER_PLAN
初期化パラメータの設定を解除します。
例21-6 PDBリソース・プランの無効化
次の例では、PDBリソース・プランを無効化しています。
ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = '';
関連項目:
-
「CDB内のコンテナへのアクセスについて」を参照してください。
親トピック: PDBリソース・プランの管理
Oracle Database Resource Managerで管理されるPDBの監視
一連の動的パフォーマンス・ビューにより、Oracle Database Resource ManagerによるPDBの設定の結果を監視できます。
この項では、次の項目について説明します。
- PDBに対するリソース・マネージャのビューについて
ビューを使用して、PDBに対するOracle Database Resource Managerの設定の結果を監視できます。 - PDBのCPU使用率の監視
V$RSRCPDBMETRIC
ビューを使用すると、セッション数の観点または過去1分間の使用状況の観点から、CPUメトリックをミリ秒単位で追跡できます。 - PDBパラレル実行の監視
V$RSRCPDBMETRIC
ビューを使用すると、PDBに対するパラレル文とパラレル・サーバーの使用を追跡できます。 - PDBによって生成されるI/Oの監視
V$RSRCPDBMETRIC
ビューを使用すると、PDBで生成されるI/Oの量を追跡できます。 - PDBのメモリー使用率の監視
V$RSRCPDBMETRIC
ビューを使用すると、PDBで使用されるメモリー量を追跡できます。
PDBに対するリソース・マネージャのビューについて
ビューを使用して、PDBに対するOracle Database Resource Managerの設定の結果を監視できます。
次のビューがあります。
-
V$RSRCPDBMETRIC
V$RSRCPDBMETRIC
ビューは、CPU使用率、パラレル実行、生成されるI/O、メモリー使用率など、PDBのリソース消費に関する現在の統計を提供します。 -
V$RSRCPDBMETRIC_HISTORY
V$RSRCPDBMETRIC_HISTORY
ビューの列は、V$RSRCPDBMETRIC
ビューの列と同じです。これらのビューの唯一の違いは、V$RSRCPDBMETRIC
ビューには過去1分間のみのメトリックが含まれているのに対して、V$RSRCPDBMETRIC_HISTORY
ビューには過去60分間のメトリックが含まれていることです。 -
V$RSRC_PDB
V$RSRC_PDB
ビューには累積統計が表示されます。統計は、CDBリソース・プランによって設定された時間から蓄積されます。 -
DBA_HIST_RSRC_PDB_METRIC
このビューには、自動ワークロード・リポジトリ(AWR)のスナップショットを使用して取得された、
V$RSRCPDBMETRIC_HISTORY
の履歴統計が含まれています。
ノート:
STATISTICS_LEVEL
初期化パラメータがALL
またはTYPICAL
に設定されている場合、V$RSRCPDBMETRIC
およびV$RSRCPDBMETRIC_HISTORY
ビューでは、リソース・マネージャによって現在管理されていないリソースの統計が記録されます。
関連項目:
-
リアルタイムSQL監視の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください
-
V$RSRCPDBMETRIC
、V$RSRCPDBMETRIC_HISTORY
、V$RSRC_PDB
およびDBA_HIST_RSRC_PDB_METRIC
について学習するには、『Oracle Databaseリファレンス』を参照してください
PDBのCPU使用率の監視
V$RSRCPDBMETRIC
ビューを使用すると、セッション数の観点または過去1分間の使用状況の観点から、CPUメトリックをミリ秒単位で追跡できます。
ビューには各PDBのリアルタイムなメトリックが提供されるため、ワークロードの実行中に、CPUリソースの使用状況を継続的に監視する場合に非常に便利です。
アクティブなCDBリソース・プランでPDBのCPU使用状況を管理します。このビューを使用して、次のような他のPDB設定によって、PDBの最大および平均CPU使用状況を比較します。
-
使用されたCPU時間
-
CPUを待機している時間
-
CPUを消費しているセッションの平均数
-
CPU割当てを待機しているセッションの数
たとえば、PDBが使用したCPUリソースの量およびPDBがリソース割当てを待機した期間を表示できます。あるいは、各PDBから実行されているセッションの数とアクティブなセッションの総数とを対比できます。
PDBのCPU使用率の観点からのCPU消費量の追跡
CPU使用率でCPUの消費量を追跡するには、CPU_UTILIZATION_LIMIT
列およびAVG_CPU_UTILIZATION
列を問い合せます。AVG_CPU_UTILIZATION
には、PDBによるサーバーのCPUの平均使用率が表示されます。CPU_UTILIZATION_LIMIT
は、PDBが使用できるサーバーのCPUの最大割合を表します。この制限は、UTILIZATION_LIMIT
ディレクティブ属性を使用して設定されます。
次の問合せでは、コンテナID (CON_ID
)および各PDBの名前を表示することでこの情報が表示されます。
COLUMN PDB_NAME FORMAT A10
SELECT r.CON_ID,
p.PDB_NAME,
r.CPU_UTILIZATION_LIMIT,
r.AVG_CPU_UTILIZATION
FROM V$RSRCPDBMETRIC r,
CDB_PDBS p
WHERE r.CON_ID = p.CON_ID;
PDBのCPU消費量および制限量の追跡
各PDBのCPUの消費量および制限量をミリ秒単位で追跡するには、CPU_CONSUMED_TIME
列およびCPU_TIME_WAIT
列を使用します。NUM_CPUS
列は、リソース・マネージャが管理しているCPUの数を表します。
次の問合せでは、コンテナID (CON_ID
)および各PDBの名前を表示することでこの情報が表示されます。
COLUMN PDB_NAME FORMAT A10
SELECT r.CON_ID,
p.PDB_NAME,
r.CPU_CONSUMED_TIME,
r.CPU_WAIT_TIME,
r.NUM_CPUS
FROM V$RSRCPDBMETRIC r,
CDB_PDBS p
WHERE r.CON_ID = p.CON_ID;
PDBのセッション数の観点からのCPU消費量および制限量の追跡
CPUの消費量および制限量をセッションの数で追跡するには、RUNNING_SESSIONS_LIMIT
、AVG_RUNNING_SESSIONS
、AVG_WAITING_SESSIONS
の各列を使用します。RUNNING_SESSIONS_LIMIT
には、特定のPDBからいつでも実行できるセッションの最大数が表示されます。この制限は、PDBに設定したUTILIZATION_LIMIT
ディレクティブ属性によって定義されます。AVG_RUNNING_SESSIONS
列にはCPUを消費しているセッションの平均数が表示され、AVG_WAITING_SESSIONS
列にはCPUを待機しているセッションの平均数が表示されます。
次の問合せでは、コンテナID (CON_ID
)および各PDBの名前を表示することでこの情報が表示されます。
COLUMN PDB_NAME FORMAT A10
SELECT r.CON_ID,
p.PDB_NAME,
r.RUNNING_SESSIONS_LIMIT,
r.AVG_RUNNING_SESSIONS,
r.AVG_WAITING_SESSIONS
FROM V$RSRCPDBMETRIC r,
CDB_PDBS p
WHERE r.CON_ID = p.CON_ID;
PDBのパラレル実行の監視
V$RSRCPDBMETRIC
ビューを使用すると、PDBに対するパラレル・ステートメントとパラレル・サーバーの使用を追跡できます。
PDBのパラレル実行サーバーは、PDBのCDBのアクティブなCDBリソース・プランで管理されます。パラレル・ステートメントおよびPDBのパラレル・サーバーの使用を追跡するには、AVG_ACTIVE_PARALLEL_STMTS
、AVG_QUEUED_PARALLEL_STMTS
、AVG_ACTIVE_PARALLEL_SERVERS
、AVG_QUEUED_PARALLEL_SERVERS
およびPARALLEL_SERVERS_LIMIT
列を使用します。
AVG_ACTIVE_PARALLEL_STMTS
とAVG_ACTIVE_PARALLEL_SERVERS
には、実行されているパラレル・ステートメントの平均数、およびパラレル・ステートメントによって使用されるパラレル・サーバーの平均数が表示されます。AVG_QUEUED_PARALLEL_STMTS
とAVG_QUEUED_PARALLEL_SERVERS
には、キュー内のパラレル・ステートメントの平均数、およびキュー内のパラレル・ステートメントによって要求されたパラレル・サーバーの平均数が表示されます。PARALLEL_SERVERS_LIMIT
には、PDBで使用できるパラレル・サーバーの数が表示されます。
次の問合せでは、コンテナID (CON_ID
)および各PDBの名前を表示することでこの情報が表示されます。
COLUMN PDB_NAME FORMAT A10
SELECT r.CON_ID, p.PDB_NAME, r.AVG_ACTIVE_PARALLEL_STMTS, r.AVG_QUEUED_PARALLEL_STMTS,
r.AVG_ACTIVE_PARALLEL_SERVERS, r.AVG_QUEUED_PARALLEL_SERVERS, r.PARALLEL_SERVERS_LIMIT
FROM V$RSRCPDBMETRIC r, CDB_PDBS p
WHERE r.CON_ID = p.CON_ID;
PDBによって生成されるI/Oの監視
V$RSRCPDBMETRIC
ビューを使用すると、PDBで生成されるI/Oの量を追跡できます。
I/Oは、PDBでMAX_IOPS
初期化パラメータまたはMAX_MBPS
初期化パラメータを設定することで、PDBに対して制限されます。このビューを使用して、毎秒の操作数および毎秒のMB数に関してPDBで生成されるI/Oを比較します。
PDBで毎秒生成されるI/O操作数の追跡
前の1分間にPDBで毎秒生成されるI/O操作数を追跡するには、IOPS
列を使用します。
次の問合せでは、コンテナID (CON_ID
)および各PDBの名前を表示することでこの情報が表示されます。
COLUMN PDB_NAME FORMAT A10
SELECT r.CON_ID, p.PDB_NAME, r.IOPS
FROM V$RSRCPDBMETRIC r, CDB_PDBS p
WHERE r.CON_ID = p.CON_ID;
PDBでのI/O操作で毎秒生成されるデータ量(MB単位)の追跡
前の1分間にPDBで毎秒生成されるI/OのMB数を追跡するには、IOMBPS
列を使用します。
次の問合せでは、コンテナID (CON_ID
)および各PDBの名前を表示することでこの情報が表示されます。
COLUMN PDB_NAME FORMAT A10
SELECT r.CON_ID, p.PDB_NAME, r.IOMBPS
FROM V$RSRCPDBMETRIC r, CDB_PDBS p
WHERE r.CON_ID = p.CON_ID;
PDBのメモリー使用状況の監視
V$RSRCPDBMETRIC
ビューを使用すると、PDBで使用されるメモリー量を追跡できます。
このビューを使用して、SGA、PGA、バッファ・キャッシュおよびPDBが現在使用している共有プール・メモリーの量を追跡します。
特定のPDBの現在のメモリー使用量(バイト単位)を追跡するには、SGA_BYTES
、PGA_BYTES
、BUFFER_CACHE_BYTES
およびSHARED_POOL_BYTES
列を使用します。
次の問合せでは、コンテナID (CON_ID
)および各PDBの名前を表示することでこの情報が表示されます。
COLUMN PDB_NAME FORMAT A10
SELECT r.CON_ID, p.PDB_NAME, r.SGA_BYTES, r.PGA_BYTES, r.BUFFER_CACHE_BYTES, r.SHARED_POOL_BYTES
FROM V$RSRCPDBMETRIC r, CDB_PDBS p
WHERE r.CON_ID = p.CON_ID;