type
status
date
slug
summary
tags
category
icon
password

DB 아키텍처 주요 영역

크게 인스턴스영역(메모리, 프로세스), 데이터베이스영역(데이터 파일) 으로 구성됨

메모리 영역(SGA. System Global Area)

notion image

공용 풀(Shared Pool)

공용 풀(Shared Pool)은 Oracle 데이터베이스의 메모리 구조 중 하나로, SQL 문장과 PL/SQL 프로그램의 실행 계획을 저장하고 공유하는 역할을 합니다. 이는 데이터베이스의 성능을 향상시키는 데 중요한 요소입니다. 공용 풀은 라이브러리 캐시와 데이터 사전 캐시로 구성되어 있습니다.

Database Buffer Cache

Database Buffer Cache는 Oracle 데이터베이스의 메모리 구조 중 가장 큰 부분을 차지하며, 디스크에서 읽어온 데이터 블록을 저장하는 역할을 합니다. 이 캐시는 자주 액세스되는 데이터를 메모리에 유지함으로써 디스크 I/O를 줄이고 데이터베이스 성능을 크게 향상시킵니다. Buffer Cache의 효율적인 관리는 Oracle 데이터베이스의 전반적인 성능에 직접적인 영향을 미칩니다.
버퍼 상태에 따라 다음의 표 같이 분류됩니다.
버퍼 상태
설명
Free Buffer
사용되지 않은 빈 버퍼
Dirty Buffer
변경된 데이터를 포함하고 있으며 디스크에 아직 기록되지 않은 버퍼
Clean Buffer
변경되지 않은 데이터를 포함하고 있는 버퍼
Pinned Buffer
현재 사용 중인 버퍼로, 다른 프로세스가 접근할 수 없음

Redo Log Buffer

Redo Log Buffer는 Oracle 데이터베이스의 중요한 메모리 구조 중 하나로, 데이터베이스에 대한 모든 변경 사항을 임시로 저장하는 순환 버퍼입니다. 이 버퍼는 데이터베이스 복구 및 일관성 유지에 필수적인 역할을 합니다. Redo Log Buffer의 내용은 주기적으로 또는 특정 조건에 따라 물리적 Redo Log 파일에 기록되어, 시스템 장애 발생 시 데이터 손실을 최소화하고 빠른 복구를 가능하게 합니다.
 

프로세스 영역

notion image

Process Monitor(PMON)

프로세스 모니터(PMON)는 Oracle 데이터베이스에서 다양한 정리 및 복구 작업을 수행하는 중요한 백그라운드 프로세스입니다. 사용자 프로세스가 실패할 때 프로세스 복구를 담당하며, 종료된 프로세스와 관련된 잠금을 해제하고, 프로세스의 임시 세그먼트를 제거합니다. PMON은 또한 데이터베이스 시작 시 인스턴스 복구에 중요한 역할을 하며, 인스턴스 장애 후 정리 작업을 수행합니다.
notion image

System Monitor(SMON)

시스템 모니터 프로세스(SMON)는 다음을 포함한 많은 데이터베이스 유지 관리 작업을 수행합니다:
  • 임시 테이블스페이스 메타데이터를 생성 및 관리하고 고아가 된 임시 세그먼트에서 공간을 회수합니다.
  • 언두 공간 사용 통계를 기반으로 언두 세그먼트를 온라인, 오프라인 및 축소하여 언두 테이블스페이스를 유지 관리합니다.
  • 데이터 사전이 일시적이고 일관성 없는 상태일 때 이를 정리합니다.
  • Oracle Flashback 기능을 지원하는 데 사용되는 시스템 변경 번호(SCN)와 시간 매핑 테이블을 유지 관리합니다.
SMON은 백그라운드 활동 중 발생하는 내부 및 외부 오류에 대해 복원력이 있습니다. SMON은 스레드 또는 운영 체제 프로세스로 실행될 수 있습니다. Oracle Real Application Clusters(Oracle RAC) 데이터베이스에서는 한 인스턴스의 SMON 프로세스가 실패한 다른 인스턴스에 대한 인스턴스 복구를 수행할 수 있습니다.
 
commit 수행시 redo log buffer에 의해 redo log files 에 내리고 다 차게 되면 비우고 commit 을 수행하게 됩니다. 이러한 명령을 SMON이 수행합니다.
💡
Write-ahead logging은 데이터베이스 시스템에서 중요한 기술로, 변경 사항을 실제 데이터에 적용하기 전에 로그에 먼저 기록하는 방식입니다. 이 방법은 시스템 장애 발생 시 데이터 일관성을 유지하고 복구를 용이하게 합니다. Oracle 데이터베이스에서는 Redo Log Buffer와 Redo Log Files를 통해 이 기술을 구현하여 데이터 무결성을 보장합니다.
notion image

Database Writer(DBWn = DBWR)

메모리에서 변경된 더티 버퍼를 디스크에 기록하는 프로세스
데이터베이스 기록 프로세스(DBWn)는 데이터베이스 버퍼 캐시를 읽고 수정된 버퍼를 데이터 파일에 씁니다. 또한 검사점, 파일 열기 동기화 및 Block Written 레코드의 로깅을 처리합니다. 또한 DBWn은 Flash Cache가 구성된 경우 Database Smart Flash Cache(Flash Cache)를 읽습니다.
💡
DB Writer 는 왜 병렬 프로세스로 실행되나요? 디스크와의 상호작용을 수행하는데, 디스크가 메모리에 비해 I/O 속도가 느리기 때문입니다. 이를 극복하기 위해 병렬 프로세스로 수행합니다.
notion image
 

Redo Log Writer(LGWR)

notion image
서버 프로세스는 데이터베이스 버퍼 캐시의 데이터 블록에 변경 사항을 기록하고 redo데이터를 redo로그 버퍼에 씁니다. 로그 작성기 프로세스(LGWR)는 redo로그 버퍼에서 온라인 redo로그로 redo로그 항목을 순차적으로 기록합니다(다 차게 되면 처음 기록한 데이터 flush). 데이터베이스에 멀티플렉싱 redo로그가 있는 경우 LGWR은 redo로그 파일 그룹의 모든 멤버에 동일한 redo로그 항목을 기록합니다. 옵션으로 아카이브 프로세스(ARCH)에 옮길 수 있습니다.
 
동시 쓰기를 통한 I/O 횟수를 감소시킴으로써 성능을 향상시킬 수 있다. 단 Redo 로그 버퍼와 로그 파일은 스트라이핑 디스크 영역에 저장되어야 제 성능을 발휘한다.
트랜잭션1이 커밋되면 LGWR 백그라운드 프로세스가 해당 로그를 redo 로그파일에 적용할 준비가 되고, 해당 위치의 redo 버퍼 로그를 redo 로그 파일에 적용하기 전 트랜잭션n 개가 커밋이 수행되었을 때 LGWR 프로세스가 커밋된 모든 트랜잭션 로그를 동시에 기록하게 됩니다.
즉, 조건만 충족되면 3번의 I/O 를 1번으로 줄여 성능을 향상시킬 수 있게 됩니다.
  • 커밋을 수행하는 경우
  • DBWR에 의해 변경된 데이터 블록을 저장하기 전
  • 리두 로그 버퍼의 1//3 이상 사용
  • 1MB 이상의 리두 로그 생성시 3초마다 타임아웃
 

Archiver Process(ARCn)

notion image
데이터베이스가 모드이고 자동 아카이빙이 활성화된 경우에만 존재하며, 이 경우 ARCn은 온라인 redo로그 파일을 자동으로 아카이빙합니다. 로그 작성기 프로세스(LGWR)는 보관될 때까지 온라인 다시 실행 로그 그룹을 다시 사용하고 덮어쓸 수 없습니다.

Checkpoint Process(CKPT)

체크포인트 프로세스(CKPT)는 특정 시간에 데이터베이스 쓰기 프로세스(DBWn)를 트리거하여 데이터베이스 버퍼 캐시를 읽고 수정된 버퍼를 데이터 파일에 쓰도록 체크포인트 요청을 시작합니다. 개별 체크포인트 요청이 완료되면 CKPT는 데이터 파일 헤더와 제어 파일을 업데이트하여 가장 최근의 체크포인트를 기록합니다.
notion image

데이터파일 영역

Datafiles

데이터 파일(Datafiles)은 Oracle 데이터베이스의 실제 데이터를 저장하는 물리적 파일입니다. 이 파일들은 테이블스페이스와 연결되어 있으며, 데이터베이스 객체(테이블, 인덱스 등)의 데이터를 포함합니다. Oracle은 데이터 파일을 효율적으로 관리하여 데이터의 저장, 검색, 업데이트를 최적화합니다.
Tablespaces
설명
TEMP
임시 데이터를 저장하는 테이블스페이스입니다. 정렬 작업이나 대용량 쿼리 실행 시 사용되며, 세션 종료 시 데이터가 자동으로 삭제됩니다.
UNDO
트랜잭션의 롤백 정보를 저장하는 테이블스페이스입니다. 데이터 일관성 유지와 읽기 일관성 제공에 중요한 역할을 합니다.
USER
사용자가 생성한 테이블, 인덱스 등의 객체를 저장하는 테이블스페이스입니다. 일반적인 데이터 저장에 사용됩니다.
SYSTEM
데이터베이스의 핵심 정보를 저장하는 테이블스페이스입니다. 데이터 딕셔너리, 제어 파일 정보 등 Oracle 시스템 운영에 필수적인 데이터를 포함합니다.
SYSAUX
SYSTEM 테이블스페이스의 보조 역할을 하는 테이블스페이스입니다. 데이터베이스 메타데이터, 통계 정보, 모니터링 데이터 등을 저장하여 SYSTEM 테이블스페이스의 부하를 줄이고 데이터베이스 관리를 최적화합니다.

Control Files

제어 파일(Control Files)은 Oracle 데이터베이스의 물리적 구조와 운영에 필수적인 정보를 포함하는 작은 이진 파일입니다. 이 파일들은 데이터베이스의 이름, 생성 시간, 테이블스페이스, 데이터 파일, 온라인 redo 로그 파일의 위치 등 중요한 메타데이터를 저장합니다. Oracle은 데이터베이스의 무결성을 보장(동기화 수행)하기 위해 일반적으로 여러 개의 제어 파일 복사본을 유지합니다.

Redo log Files

Redo 로그 파일(Redo Log Files)은 Oracle 데이터베이스의 변경 사항을 순차적으로 기록하는 중요한 구성 요소입니다. 이 파일들은 데이터베이스의 모든 트랜잭션과 데이터 변경 사항을 저장하여, 시스템 장애 발생 시 데이터베이스를 일관된 상태로 복구할 수 있게 합니다.
💡
Redo 로그는 순환 방식으로 작동하며, 가득 차면 다시 처음부터 덮어쓰기 시작합니다. 손상을 방지하기 위해 그룹별로 생성하고 일정 채워지면 스위치(switch)을 합니다.

Archived Log Files

아카이브 로그 파일(Archived Log Files)은 Oracle 데이터베이스에서 완료된 redo 로그 파일의 오프라인 복사본입니다. 이 파일들은 데이터베이스가 ARCHIVELOG 모드로 운영될 때 자동으로 생성되며, 장기간의 데이터 복구와 백업 전략에 중요한 역할을 합니다. 아카이브 로그 파일을 통해 관리자는 특정 시점으로의 복구(Point-in-Time Recovery)를 수행할 수 있으며, 이는 데이터 손실을 최소화하고 비즈니스 연속성을 보장하는 데 필수적입니다.
 
REF
Dedicated Mode VS Shared ModeRAID
Loading...