5.2.7 データベースおよびPDBのためのPMEMキャッシュ割当て制限の管理
ノート:
このトピックは、23.1.0より前のOracle Exadata System Softwareリリースにのみ適用されます。それ以外の場合は、「データベースおよびPDBのXRMEMキャッシュ割当ての管理」を参照してください。
I/Oリソース管理(IORM)により、異なるデータベースとプラガブル・データベース(PDB)の間でPMEMキャッシュをどのように共有するかを制御できます。
これは、CDBリソース・プランのみ、またはI/Oリソース管理(IORM)データベース間プランと組み合せて使用できます。
NEWCDB
CDBのデータベース内リソース・プランの例を考えてみます。プランでは、プランに記載されている3つのPDB用にmemory_min
およびmemory_limit
を指定します。
次の点に注意してください:
memory_min
およびmemory_limit
の値は、0から100の範囲のパーセンテージで指定されます。オーバー・プロビジョニングがサポートされているため、パーセンテージの合計は100%には制限されません。これらの値の合計が100%を超える場合、値はパーセンテージへと正規化されます。memory_min
が指定されていない場合は、デフォルトで0に設定されます。memory_limit
が指定されていない場合は、デフォルトで100に設定されます。CDB$ROOT
用には、5%のmemory_limit
値があります。
次のコードは、データベース内プランの例を作成する方法を示しています。memory_min
値の合計は40%で、memory_limit
値の合計は正規化する必要のある175%です。データベース間プランが指定されていない場合、これらのパーセンテージがPMEMキャッシュのサイズ全体に適用されます。データベース間プランが指定されている場合、PDBの割当て制限は、データベース間プランのディレクティブで指定されたデータベース用のpmemcachemin
とpmemcachesize
値のパーセンテージとして計算されます。
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN(
plan => 'NEWCDB_PLAN',
comment => 'CDB resource plan for newcdb');
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan => 'NEWCDB_PLAN',
pluggable_database => 'SALESPDB',
memory_min => 20);
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan => 'NEWCDB_PLAN',
pluggable_database => 'SERVICESPDB',
memory_min => 20,
memory_limit => 50);
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan => 'NEWCDB_PLAN',
pluggable_database => 'HRPDB',
memory_limit => 25);
DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/
前述の例で、データベース間プランを指定せず、PMEMキャッシュのサイズが10 GBの場合の、(memory_limit
の値の合計が100%を超えたために)制限を正規化した後の割当て制限の内訳を次の表に示します。正規化後、最小値が対応する制限より大きくなった場合は、最小値は制限と等しくなるように減らされます。
表5-8 ケース1: データベース間プランがない場合のPDBのPMEMキャッシュの制限
PDB | PMEMキャッシュの最小 | PMEMの弱い制限 | 正規化済の弱い制限 | PMEMの強い制限 |
---|---|---|---|---|
SALESPDB |
20% = 2 GB |
100 (デフォルト) |
100 / 175 * 10 GB = 5.71 GB |
該当なし |
SERVICESPDB |
20% = 2 GB |
50 |
50 / 175 * 10 GB = 2.85 GB |
該当なし |
HRPDB |
0 |
25 |
25 / 175 * 10 GB = 1.42 GB |
該当なし |
次の例に、NEWCDB
CDBを含むPMEMキャッシュ割当て制限のあるデータベース間プランを示します。
ALTER IORMPLAN dbplan= -
((name=newcdb, share=8, pmemCacheSize= 2G, flashCacheSize=10G), -
(name=finance, share=8, pmemCacheMin= 1G, pmemCacheLimit= 2G, flashCacheLimit=10G, flashCacheMin=2G), -
(name=dev, share=2, pmemCacheMin= 100M, pmemCacheLimit= 1G, flashCacheLimit=4G, flashCacheMin=1G), -
(name=test, share=1))
newcdb
CDBに加え、その他の3つのデータベース(finance
、dev
およびtest
)で同じストレージ・サーバーを共有します。PMEMキャッシュの割当て制限が強制されるのは、ディレクティブでpmemcachesize
、pmemcachelimit
またはpmemcachemin
属性を指定した場合のみです。データベースtest
にはPMEMキャッシュのディレクティブが指定されていません。したがって、そのデータベースおよびそのPDB (もしあれば)では、PMEMキャッシュの割当て制限は管理されません。
データベース間IORMプラン・ディレクティブのキャッシュ制限は、対応するCDBプランの設定を制約します。したがって、データベース間IORMプラン・ディレクティブでデータベースのpmemcachemin
およびpmemcachesize
設定が指定されている場合、CDBプランでPDB固有のmemory_min
割当て制限はpmemcachemin
設定の一部になり、PDB固有のmemory_limit
値はpmemcachesize
の一部になります。
ただし、データベース間IORMプラン・ディレクティブでpmemcachemin
を指定せずにpmemcachesize
が指定されている場合、PDB固有のmemory_min
設定は無視されますが、memory_limit
設定は引き続きpmemcachesize
の一部になります。
したがって、newcdb
のデータベース間IORMプラン・ディレクティブの例では、pmemcachemin
なしでpmemcachesize
が指定されているため、CDBプランでPDB固有のmemory_min
割当て制限が無視されます。次の表に、CDBプランの例をデータベース間IORMプランの例とともに適用した場合の有効なPMEMキャッシュ制限を示します。
表5-9 ケース2: データベース間プランがある場合のPDBのPMEMキャッシュの制限
PDB | PMEMキャッシュの最小 | PMEMの強い制限 | 正規化済の強い制限 | PMEMの弱い制限 |
---|---|---|---|---|
SALESPDB |
0 |
100 (デフォルト) |
100 / 175 * 2 GB = 1.14 GB |
該当なし |
SERVICESPDB |
0 |
50 |
50 / 175 * 2 GB = 0.57 GB |
該当なし |
HRPDB |
0 |
25 |
25 / 175 * 2 GB = 0.28 GB |
該当なし |
非CDBデータベースの場合、pmemcachesize
、pmemcachemin
およびpmemcachelimit
の値は絶対的な値として指定するため、追加の正規化は必要ありません。pmemcachemin
は保証付きの予約であるため、pmemcachemin
の合計は、すべてのディレクティブ全体でPMEMキャッシュの合計サイズより小さくする必要があります。
親トピック: IORMの管理