PostgreSQL에 대해 알아보기 위해 기본 구조를 파악해야 그 이해가 쉽기 때문에
1편을 통해 공유 메모리와 프로세스에 대해 알아보고
2편에서 데이터베이스 구조에 대해 자세히 살펴보겠습니다.
PostgreSQL Architecture 구조는 아래와 같습니다.
- 공유 메모리 (Shared Memory)
- 프로세스 (Process)
- 데이터베이스 (Database)
1. 공유 메모리 (Shared Memory)
공유 메모리에서 가장 중요한 요소는 Shared Buffer와 WAL Buffer입니다.
● Shared Buffer는 Disk I/O 최소화를 위해 아래 항목을 만족해야 합니다.
- 수십, 수백 GB의 버퍼를 빠르게 액세스해야 함
- 많은 사용자가 동시에 접근할 때 경합을 최소화
- 자주 사용되는 버퍼는 최대한 오래 버퍼에 머물러야 함
● WAL Buffer는 데이터베이스의 변경사항을 저장하는 버퍼입니다.
- WAL Buffer의 내용은 정해진 Event에 따라 WAL 파일로 기록
- WAL Buffer는 Oracle의 Redo Log Buffer에 대응
- WAL File은 Oracle의 Redo Log File에 대응
2. 프로세스 (Process)
● Process의 주요 Type 3가지
- Postmaster (Daemon) process
▶PostgreSQL 기동시 최초로 시작되는 프로세스로 초기 기동시 복구 작업
▶ Shared Memory 초기화 작업
▶ 백그라운드 프로세스 기동 작업
- Background process
▶ logger : 에러 메시지 및 다양한 정보를 로그 파일에 기록
▶ checkpointer : 체크포인트 발생시, dirty 버퍼를 파일에 기록
▶ writer : 주기적으로 dirty 버퍼를 파일에 기록
▶ wal writer : WAL 버퍼의 내용을 WAL 파일에 기록
▶ autovacuum launcher : Vacuum이 필요한 시점에 autovacuum worker를 fork
▶ archiver : Archive Log Mode 일 때, WAL 파일을 지정된 디렉토리에 복사
▶ stats collector : DBMS 통계 정보를 수집 (세션 수행 통계, 테이블 사용 통계 등)
- Backend process
▶ Backend process는 사용자 프로세스 쿼리 요청을 수행한 후, 결과를 전송하는 역할 수행
▶ 쿼리 수행에 필요한 몇 가지 메모리 구조가 필요하며 이를 로컬 메모리라고 통칭
▶ 로컬 메모리 주요 파라미터 (work_mem, maintenance_work_mem, temp_buffer 등)
'3. 데이터관리' 카테고리의 다른 글
자율운영 데이터베이스에서 DB Link to Private DBCS (0) | 2024.03.18 |
---|---|
데이터 가드(Data Guard) 구성된 기본 데이터베이스 업데이트 순서 (0) | 2024.03.02 |
OCI Data Integration 소개 - Data 통합을 위한 서버리스 ETL 서비스 (0) | 2024.02.28 |
Oracle 데이터베이스 보안 솔루션 #1 - Overview (Database Security Solution Overview) (0) | 2024.02.27 |
오라클 데이터베이스 JSON 지원 (0) | 2024.02.27 |
댓글