DB/ORACLE

Oracle Server 구조

쿠키는고양이 2022. 8. 28. 15:06

 

1. Oracle Server 구조 (Dev)

오라클 서버는 다음과 같은 구조를 갖는다.

대표사진 삭제

Oracle Server 구조

그림의 DB Server는 크게 보면 INSTANCE 영역과 DATABASE 영역으로 나뉜다. INSTANCE의 경우 메모리에 생성되며 DATABASE는 HDD에 생성된다.

즉, 실제로 데이터를 저장하고 있는 DATABASE는 단순히 파일 개념으로만 존재하며 INSTANCE에서 사용자의

요청을 처리한다. 만약 SELECT 하여 데이터를 가져온다는 것은 INSTANCE가 요청을 받고 HDD에서 파일을 꺼내찾은 후 사용자에게 보내주는 것이다.

 

그림에서 각각의 중요 파트는 다음과 같은 기능을 갖는다.

 

*INSTANCE

DB 데이터에 대한 동기화 등 데이터를 보호하는 역활. 실질적 DBMS의 형태

 

*SGA(System Global Area)

데이터와 공유 정보를 갖는 공유 메모리 영역

 

*Shared Pool

SQL 공유 영역. SQL에서 변경이 잦은 곳을 바인딩하여 공통으로 사용할 수 있도록 실행계획을 저장.

즉, SQL을 실행하기 위한 SQL문장과 문장의 실행계획, 구문정보를 저장하는 공간

 

*Database Buffer Cache

데이터의 보호를 위해 원본을 메모리에 저장(백업)하는 공간.

 

*Redo Log Buffer

DB에서 발생한 모든 변화를 로그로 작성하여 저장하는 메모리 공간.

 

 

2. User - Oracle Server 의 구조

* Dedicated Server Process

· 1:1 구조

· 유저 프로세서의 수 만큼 서버 프로세서의 개수도 늘어나는 구조.

· 유저 프로세서가 idle 상태면 서버 프로세서도 idle 상태가 되므로 자원 낭비가 발생.

· 일반적으로 사용되는 구조

대표사진 삭제

Dedicated Server Process

 

* Shared Server Process

· 1:N 구조

· 서버 프로세서들이 개별적으로 PGA 영역에서 가지고 있던 User Process의 정보를 Shared Pool에 캐싱 후

다른 서버프로세서들과 공유.

대표사진 삭제

Shared Server Process

 

- Server Process

· DB 접속시 유저가 가진 접속 정보를 저장. (어느 DB에 접속하는 계정인지 등을 파악)

· 유저의 요청을 DBMS에 전달하며 처리된 요청을 유저에게 전달하기 위해 PGA를 생성.

 

- PGA(Program Global Area)

· DB에 접속한 모든 유저에게 각각 할당되는 각각의 서버 프로세스가 독자적으로 사용하는 오라클 메모리 영역.

· 따라서 다른 유저들과 공유되지 않음.

· 서버 프로세스에서 생성됨.