OracleDB/Concept

Oracle Database Architecture

대끄블 2025. 4. 7. 12:00

 

일반적으로 Oracle Database Server는 Database와 하나 이상의 Database Instance로 구성됩니다.

'Oracle Database'는 'Database'와 'Database Instance' 모두를 가리키는 용어로 쓰이기도합니다.

 

그러나 각 용어의 의미를 엄격히 나누자면,

Database란? Data를 저장하기 위한 Disk에 위치한 File set.

Database Instance란? Database Files를 관리하는 Memory Structure.

 

이러한 Database Instance는 SGA(System Global Area)라고하는 Shared Memory Area와 Background Process들로 구성됩니다.

 

Oracle Instance and Database

위 그림의 각 항목에 대해 자세히 설명하자면 아주 복잡하고 긴 이야기가 되기 때문에

간단히 용어소개정도만 하고, 다음 포스트에서 자세히 설명하도록 하겠습니다.

 

Instance

SGA(System Global Area)란?

하나의 Database Instance에 대한 Data 및 Control 정보를 포함하는 Shared Memory Structure입니다.

PGA(Program Global Area)란?

Server 또는 Background Process에 대한 Data 및 Control 정보를 포함하는 Memory 영역입니다.

PGA에 대한 Access는 Process에 Exclusive합니다.

각 Server Process 및 Background Process에는 자체 PGA가 있습니다.

 

Database

Data File이란?

Oracle Database에서 생성한 Persistent Storage의 Physical File이며 Table/Index와 같은 데이터 구조를 포함합니다.

Oracle Database는 물리적으로 Tablespace Data를 Datafile에 저장하며 최소 하나이상의 Data File이 있어야 합니다.

Control File이란?

Database의 Physical Structure를 기록하고 Redo Log Files의 이름과 위치, Current Log Sequence Number, Checkpoint 정보등을 포함하는 하나의 Database에 연결된 Binary File로, 각 Database에는 하나의 고유한 Control File이 있습니다.

Oracle Database는 Control File을 사용하여 Database File을 찾고 Database 상태를 관리합니다.

Online Redo Log File이란?

Data FIles 및 Control File에 대한 모든 변경 record를 기록하는 두 개 이상의 Online Redo Log Files set.

 

Oracle Process

Background Process란?

각 Client Process에 대해 실행되는 여러 Oracle Database program에서 처리할 수 있는 기능을 통합한다.

Background Process가 비동기식으로 I/O수행 및 더나은 성능과 신뢰성을 위한 parallelism을 제공하기 위해 기타 processes를 모니터링 합니다.

Client Process란?

Instance에 대한 각 user connection에 대해 application을 실행합니다.

각 Client Process는 자체 Server Process와 연결됩니다.

Server Process는 PGA라고 하는 자체 Private Session Memory가 있습니다.

Server Process란?

Client Process와 communicate하고 Oracle Database와 상호작용하여 request를 수행합니다.