파라미터 관리
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 파리미터 관리[편집]
1.1 파라미터 변경[편집]
ALTER SYSTEM SET 파라미터명=값 SCOPE=MEMORY|SPFILE|BOTH;
- MEMORY는 오라클의 메모리에 즉시 적용
- SPFILE은 SPFILE에만 적용
- BOTH는 둘다 적용
1.3 pfile, spfile 백업[편집]
cp spfileSTR.ora spfileSTR.ora_20220711
mv initSTR.ora initSTR.ora_20220706
sqlplus / as sysdba
create pfile from spfile;
exit
mv initSTR.ora initSTR.ora_20220711
1.6 오라클 대표 파라미터[편집]
- sga_max_size : SGA 메모리의 최대 크기를 변경할 때 사용
- sga_target : ASMM 관리할 때 사용하는 방식 이 파라미터를 0으로 저장하면 메모리가 관리 방식이 수동으로 바뀐다.
- shared_pool_size : 라이브러리 캐시, 데이터 딕셔너리 캐시가 저장되는 장소
- shared_pool_reserved_size : shared_pool의 공간을 예약한다.
- db_cache_size : 데이터 파일에서 불러온 블럭을 저장한다.
- java_pool_size
- large_pool_size : 오라클의 페러럴 처리 작업이나 RMAN 백업, 복구할 때 사용
- streams_pool_size : 데이터 백업과 관련. 버퍼링 된 큐 메시지 저장하거나 캡처 프로세스 및 적용 프로세스를 위한 메모리 공간 중 하나이다.
- pga_aggregate_target : DB 인스턴스에 연결된 모든 서버 프로세스가 사용할 수 있는 PGA 메모리 영역 중 하나이다.
1.7 데이터 베이스에 동시 접속 결정하는 파라미터[편집]
- processes
- sessions
- transactions
- open_cursors
1.8 옵티마이저 관련 파라미터[편집]
- optimizer_dynamic_sampling : 테이블 통계정보가 없는 상태에서 테이블의 특정 조건이 맞으면 자동으로 통계 정보가 갱신된다. 이 파라미터에 따라서 SQL Plan이 변경될 수 있다.
- "_optim_peek_user_binds" : SQL 사용할 때 바인드 변수를 많이 넣는데 이 파라미터에 따라서 SQL Plan이 변경될 수 있다.
- "_optimizer_use_feedback" : 새로운 SQL이 실행될 때 예측 값과 실측 값이 있다. 이 두 값의 차이가 발생하면 실행 계획이 변경될 수 있다.
- 앞에 _가 붙은 파라미터는 히든 파라미터라고 부른다.
- 업계에서 권장하는 메모리 값은 물리적인 서버 메모리 대략 10~20% 수준에서 오라클 메모리 파라미터 초기 설정을 하고 테스트를 통해서 계속 변경한다.
- 파라미터 적용할 때 spfile에 적용 후 DB를 내렸다 올리는 게 좋다.
1.9 히든 파라미터 조회[편집]
-- Hidden Parameter 조회
SELECT
a.ksppinm "Parameter",
b.KSPPSTDF "Default Value",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value",
decode(bitand(a.ksppiflg/256,1),1,'TRUE','FALSE') IS_SESSION_MODIFIABLE,
decode(bitand(a.ksppiflg/65536,3),1,'IMMEDIATE',2,'DEFERRED',3,'IMMEDIATE','FALSE') IS_SYSTEM_MODIFIABLE
FROM x$ksppi a,
x$ksppcv b,
x$ksppsv c
WHERE a.indx = b.indx
AND a.indx = c.indx
AND a.ksppinm LIKE '/_%' escape '/'
AND a.ksppinm IN ('_optim_peek_user_binds','_optimizer_use_feedback');
1.10 SGA, PGA Hit Ratio 상태 정보 조회[편집]
-- SGA, PGA Hit Ratio 상태 정보
SELECT
'SHARED_POOL_SIZE(LIBRARY CACHE)' AS "MEMORY_PARAMETER",
ROUND((1-SUM (reloads)/SUM(pins))*100,2) AS "HIT_RATIO"
From V$LIBRARYCACHE
UNION ALL
SELECT
'SHARED_POOL_SIZE(DATA DICTIONARY)',
ROUND((1-SUM(getmisses)/SUM(gets))*100,2)
FROM V$ROWCACHE
UNION ALL
SELECT
'DB_CACHE_SIZE',
ROUND(((1-(SUM(DECODE(name, 'physical reads', value,0)) /
(SUM(DECODE(name, 'db block gets', value,0))+(SUM(DECODE(name, 'consistent gets', value, 0))))))*100),2)
FROM V$SYSSTAT
UNION ALL
SELECT
'PGA_AGGREGATE_TARGET',
ROUND(VALUE,2)
FROM V$PGASTAT
WHERE NAME = 'cache hit percentage';
- Hit Ratio값이 높으면 거의 사용 안한다는 뜻이다.
- 값이 낮아지면 사용량이 높아지는 거여서 확인하면서 메모리 값을 변경해야 한다.