251128 TIL
2025. 11. 28. 19:15ㆍCourses/아이티윌 오라클 DBA 과정
SGA
Shared Pool
- 다양한 유형의 프로그램 데이터를 캐시하는 메모리
- library cache : 유저들이 수행한 SQL문, PL/SQL문에 대한 정보를 저장, 실행계획을 가지고 있는 메모리
- data dictionary cache(row cache) : data dictionary table의 정보를 가지고 있는 메모리
- Semantic Check
- 하드 파싱 시 통계 정보 조회
- 하드 파싱 : 메모리, CPU를 사용하여 실행 계획 생성
- 통계 정보는 data dictionary table에 존재(
tab$,col$,ind$)
- shared_pool_size 파라미터를 이용해서 크기 지정
- 동적으로 크기 조정 가능
SYS@ora19c> show parameter shared_pool_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size big integer 0
select * from v$parameter where name = 'shared_pool_size';
select sum(bytes)/1024/1024 mb from v$sgastat where pool = 'shared pool';
select * from v$sga_dynamic_components;
Dababase Buffer Cache, Data Buffer Cache
- 데이터 파일에서 읽은 데이터 블록의 복사본을 저장하는 메모리 영역
- 물리적 I/O 를 최소화하기 위해 최근에 사용된 블록(block)을 저장하는 메모리 영역
- Data Buffer Cache 내부 구성 요소
db_cache_size(필수 구성)db_recycle_cache_size(옵션 구성)db_keep_cache_size(옵션 구성)db_nk_cache_size(옵션 구성) : nk(2k, 4k, 8k, 16k, 32k)
select * from v$parameter where name like '%cache_size%';


REDO LOG BUFFER
- 데이터베이스 데이터 블록의 모든 변경 사항을 기록
- 기본 목적은 복구(recovery)
- 내부에 기록된 변경 사항을 REDO Entry라고 함
- REDO Entry에는 변경 사항을 재구성하거나 재실행할 정보가 포함됨
- REDO Entry가 생성되는 SQL문 : DML(insert, update, delete, merge), DDL(create, alter, drop), select for update 문
- truncate 문 자체는 redo entry로 만들어지지 않음
- 딕셔너리 테이블 변경에 대해서만 REDO entry 생성됨
log_buffer파라미터를 이용해서 설정- static parameter
select * from v$parameter where name = 'log_buffer';

SYS@ora19c> show parameter log_buffer
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_buffer big integer 7352K

Large Pool
- 다음 용도의 데이터를 메모리에 저장하는 데 사용
- RMAN을 이용해서 백업 및 복구 작업 수행
- Oracle Shared Server 환경일 때 UGA(User Global Area)가 생성됨
- parallel query(병렬 쿼리) 작업 수행
large_pool_size파라미터를 이용해서 크기 설정- 동적 파라미터
select * from v$parameter where name = 'large_pool_size';

SYS@ora19c> show parameter large_pool_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
large_pool_size big integer 0
Java Pool
- JVM 내의 모든 세션 별 JAVA 코드 및 데이터를 메모리에 저장하는 데 사용
java_pool_size파라미터를 이용해서 크기 설정- 동적 파라미터
select * from v$parameter where name = 'java_pool_size';

SYS@ora19c> show parameter java_pool_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_pool_size big integer 0
Streams Pool
- 하나의 데이터베이스에서 다른 데이터베이스로 데이터를 이동, 복제하는 stream process에 필요한 buffer queue message를 사용하는 메모리
streams_pool_size파라미터를 이용해서 크기 설정- 동적 파라미터
select * from v$parameter where name = 'streams_pool_size';

SYS@ora19c> show parameter streams_pool_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
streams_pool_size big integer 0
백그라운드 프로세스
Database Concepts
This chapter discusses the processes in an Oracle database.
docs.oracle.com

DBWn(Database Writer)
- Data Buffer Cache에 수정된 (Dirty Block) buffer를 데이터 파일에 기록하는 백그라운드 프로세스
- 작동 시점
- data buffer cache에서 free buffer를 찾지 못했을 경우(
free buffer waits이벤트 발생) - checkpoint 이벤트가 발생할 때
- data buffer cache에서 free buffer를 찾지 못했을 경우(
SYS@ora19c> show parameter db_writer_processes
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_writer_processes integer 1
SYS@ora19c> ! ps -ef | grep ora_dbw
oracle 3991 1 0 Nov26 ? 00:00:03 ora_dbw0_ora19c
LGWR(Log Writer)
- REDO Log Buffer에 있는 Redo Entry를 REDO Log File에 기록하는 백그라운드 프로세스
- 작동 시점
- commit, rollback 수행
- redo log buffer가 1/3 찼을 경우
- 1MB 이상의 REDO Entry가 들어온 경우
- 3초마다
- DBWR가 기록하기 전에
- Instance Rcovery 시 SMON이 REDO Log를 통해 자동 복구
- Media Recovery 시 REDO Log를 가지고 복구
SYS@ora19c> ! ps -ef | grep lgwr
oracle 3993 1 0 Nov26 ? 00:00:02 ora_lgwr_ora19c
-- 로그 정보 : 컨트롤 파일이 가지고 있음
-- status가 CURRENT 인 그룹에 해당하는 파일에 로그 작성(redo03.log)
select * from v$log;
select * from v$logfile;


'Courses > 아이티윌 오라클 DBA 과정' 카테고리의 다른 글
| 251202 TIL (0) | 2025.12.02 |
|---|---|
| 251201 TIL (0) | 2025.12.01 |
| 251127 TIL (0) | 2025.11.27 |
| 251126 TIL (0) | 2025.11.26 |
| 251125 TIL (1) | 2025.11.25 |