DBAtlas · 데이터베이스 운영 아틀라스

PDB별 CPU, 메모리, I/O, 스토리지 한도 설정

Oracle멀티테넌트

명령어

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;

하는 일

PDB 수준 파라미터로 PDB가 CDB에서 사용할 수 있는 CPU, SGA/PGA, IOPS/MBPS, 전체 스토리지를 제한한다. "noisy neighbor" PDB가 다른 PDB에 영향을 주는 것을 막는다.

사용 시점

통합 CDB에서, SLA가 다른 애플리케이션을 같은 CDB에서 운영할 때, 또는 한 PDB가 서버 전체를 고갈시키는 것이 보일 때.

주의

PDB sga_target은 CDB sga_target보다 작아야 한다. 너무 낮은 값은 ORA-04031과 성능 문제를 일으킨다. sga_min_size의 합이 CDB SGA 전체를 예약해서는 안 된다. PDB의 cpu_count가 적용되려면 CDB에 resource manager plan이 활성화되어 있어야 한다. MAXSIZE에 도달하면 PDB는 ORA-65114를 받는다.

DBAtlas에서 열기 →

관련 항목