안녕하세요. 오늘은 oracle 아키텍쳐에서 흐름도와 용어 정리를 한 번 해보려고 합니다.
처음에 이해하기엔 아래처럼 간단하게 생각했었습니다.
사용자가 데이터를 변경하면 → 메모리에 잠시 저장되고 → COMMIT 하면 디스크에 반영 → 나중을 위해 로그 백업도 따로 저장됨
하지만 아키텍쳐 관련 이미지들을 찾아보면, 생각보다 처음 보는 용어와 함께 정확한 순서의 흐름을 스스로 이해하고 있지 않았다는 것을 알 수 있었습니다.
용어 정리를 먼저 해보겠습니다.
각 구성요소 역할
SGA | 공유 메모리 공간 (데이터 캐시, 로그 등 처리) |
Buffer Cache | 변경된 데이터를 임시 저장 |
Redo Log Buffer | 변경 "기록"을 저장 (복구용) |
Undo | 롤백할 수 있게 이전 상태를 기억 |
DB Writer (DBWR) | Buffer → Datafile로 기록 |
Log Writer (LGWR) | Redo Log Buffer → Redo Log 파일로 기록 |
Archived Log | Redo 로그를 백업한 파일 (장기 복구용) |
Datafile | 진짜 데이터 저장소 (디스크에 있음) |
좀 더 흐름을 자세하게 설명하자면, 아래와 같습니다.
[1] 사용자 SQL 실행
↓
[2] 인스턴스(SGA)에 요청 도착
↓
[3] 데이터베이스 버퍼 캐시 (Buffer Cache)에 변경 사항 반영
↓
[4] Redo Log Buffer에 "변경 이력" 저장
↓
[5] COMMIT 발생
↓
[6] DB Writer 프로세스가 Datafile에 변경 내용 영구 저장
↓
[7] LGWR(Log Writer)가 Redo 로그 파일로 Redo Log Buffer 내용 저장
↓
[8] Redo 로그가 가득 차면 → Archive 로그 파일로 복사됨
키 포인트는 다음과 같습니다.
- Buffer Cache = 변경 내용만 있는 임시 메모리 (DB Writer가 나중에 Datafile에 씀)
- Redo Log Buffer = 변경 "이력"을 저장 (LGWR가 Redo Log로 기록)
- COMMIT을 해야 진짜 저장됨
- 아카이브 로그는 Redo 로그를 복구용으로 오래 보관하기 위한 백업 파일
간단하게 정리하면
사용자가 데이터를 바꾸면, 변경 내용은 먼저 메모리에 임시 저장되고, 이력이 로그에 기록되며, COMMIT 시 디스크에 확정 저장되고, 나중엔 복구용으로 로그가 백업(아카이브)된다.
'IT_공부장 > Oracle' 카테고리의 다른 글
ORACLE 더미 데이터로 쿼리 해보기(DUAL 사용 방법) (2) | 2025.07.08 |
---|