CPU-, Speicher-, I/O- und Storage-Limits je PDB festlegen
OracleMultitenantBefehl
ALTER SESSION SET CONTAINER = <pdb>;
-- CPU (instance caging with Resource Manager; at PDB level in 19c):
ALTER SYSTEM SET cpu_count = 2 SCOPE = BOTH;
-- Memory (sga_min_size guarantee, sga_target upper limit):
ALTER SYSTEM SET sga_target = 512M SCOPE = BOTH;
ALTER SYSTEM SET sga_min_size = 96M SCOPE = BOTH;
ALTER SYSTEM SET pga_aggregate_limit = 2G SCOPE = BOTH;
-- I/O (non-Exadata):
ALTER SYSTEM SET max_iops = 5000 SCOPE = BOTH;
ALTER SYSTEM SET max_mbps = 200 SCOPE = BOTH;
-- Number of sessions (after the PDB is reopened):
ALTER SYSTEM SET sessions = 200 SCOPE = SPFILE;
-- Storage:
ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 2G);
-- Settings across all PDBs, from the root:
ALTER SESSION SET CONTAINER = CDB$ROOT;
SELECT p.name AS pdb, sp.name, sp.value
FROM v$system_parameter sp JOIN v$pdbs p ON p.con_id = sp.con_id
WHERE sp.name IN ('cpu_count','sga_target','sga_min_size','max_iops','max_mbps','pga_aggregate_limit')
ORDER BY p.name, sp.name;Was es tut
Begrenzt über Parameter auf PDB-Ebene, wie viel CPU, SGA/PGA, IOPS/MBPS und Gesamtspeicher eine PDB von der CDB nutzen darf; verhindert, dass "Noisy Neighbor"-PDBs die anderen beeinträchtigen.
Wann einsetzen
In konsolidierten CDBs, wenn Anwendungen mit unterschiedlichen SLAs in derselben CDB laufen oder wenn eine PDB den gesamten Server auslastet.
Vorsicht
Die sga_target der PDB muss kleiner sein als die sga_target der CDB; zu niedrige Werte verursachen ORA-04031 und Performanceprobleme. Die Summe von sga_min_size darf nicht die gesamte CDB-SGA reservieren. Damit cpu_count in einer PDB wirkt, muss in der CDB ein Resource-Manager-Plan aktiv sein. Wird MAXSIZE erreicht, erhält die PDB ORA-65114.
Verwandte Einträge
- Neue PDB aus PDB$SEED anlegen
- PDB innerhalb derselben CDB klonen (Local / Hot Clone)
- PDB aus einer anderen CDB über einen DB-Link klonen (Remote Clone)
- PDB ausstecken (Unplug) und in eine andere (oder dieselbe) CDB einstecken (Plug)
- PDBs öffnen und über CDB-Neustarts hinweg offen halten (SAVE STATE)
- Aktuellen Container bestätigen und alle PDBs vom Root aus abfragen (CDB_ / CONTAINERS)