본문 바로가기
ORACLE/DB

[Oracle] 오라클 데이터베이스 서버 아키텍처 간단 정리 :: 마이자몽

by 🌻♚ 2020. 3. 11.

출처 : https://ko.wikipedia.org/wiki/%EC%98%A4%EB%9D%BC%ED%81%B4_(%EA%B8%B0%EC%97%85)

전 서계적으로 가장 많이 사용하는 데이터베이스인 ORACLE 데이터베이스 서버의 아키텍처에 대해서 정리해보려고 합니다. 오라클 데이터베이스를 이용해서 테이블을 만들고 쿼리문을 작성하는 등 실습에 앞서 오라클 데이터베이스 서버가 어떻게 구성되어 있고 어떤 흐름으로 작동을 하는지 기초 개념을 탄탄하게 다지는 것이 중요하다고 생각합니다.

 

RDBMS 란?

Relational Database Management System으로 데이터베이스를 정의, 조작 및 제어를 할 수 있는 소프트웨어 입니다.

PDF 파일을 일기 위해서는 adobe pdf reader 이나 크롭과 같이 파일을 읽을 수 있는 프로그램 설치가 필요합니다. 엑셀파일을 읽고 수정하기 위해서는 엑셀 프로그램이 필요합니다. 이처럼, 데이터베이스를 읽기 위해 필요한 것이 RDMBS라는 것입니다.

 

Oracle 11g 12c 라는 것을 들어 보셨나요? 바로 이 11g 12c 라는 버전이 오라클의 RDBMS 버전을 뜻합니다. 오라클 데이터베이스를 사용할 수 있도록 여태껏 우리는 Oracle의 RDBMS를 설치한 것 입니다.

 

오라클 데이터베이스 서버 아키텍처

오라클 데이터베이스를 사용하기 이전에 꼭! 아키텍처를 간략하게 알고 넘어가는 것이 중요하다고 생각합니다. 오라클 데이터베이스 서버의 구성요소는 크게 Oracle InstanceOracle Database 이렇게 두가지로 이루어져 있습니다. 해당 아키텍처는 1개의 Oracle Instance로 1대 1 구조의 아키텍처입니다.

 

Oracle Instance

오라클 인스턴스는 SGA라는 공유 메모리와 데이터베이스 백그라운드 프로세스 두가지로 이루어져 있습니다.

 

SGA : 여러 유저가 동시에 접속했을 때 동시에 읽을 수 있는 메모리이고 서버가 살아 있는한 계속 실행되고 있습니다.

Backgroud Process : 메모리에서 시키는 일을 기다리는 일꾼으로 생각하면 될것 같습니다.

 

Oracle Database

오라클 데이터베이스는 데이터가 저장되어 있는 파일들의 집합 입니다.

 

아키텍처 흐름

전반적인 흐름은 위 이미지를 통해 확인 가능합니다.

 

1. Client Request

예를들어 클라이언트 측에서는 데이터베이스의 데이터를 조작 위해서  sql*plus, toad 과 같은 User Process를 사용합니다.

데이터 조작을 위해서 protocol, host, listener port, sid 정보를 UserId와 Password와 함께 요청합니다.

 

2. Connection

DB의 데이터를 읽기 위해 Connection이 필요합니다.

Listener는 클라이언트 측의 접속 요청 조건에 부합하면 User Process와 Server Process를 연결해줍니다.

 

3. Server Process 쿼리 실행 작업

Listener로 부터 User Process와 Server Process가 연결이 되면, Server Process가 쿼리를 수행하고 오라클 인스턴스를 통해 데이터베이스의 데이터에 접근합니다.

 

4. 세션 확인

마지막으로 오라클 인스턴스에서 데이터에 접근하기전에 DB 유저가 해당 데이터베이스를 접근할 수 있는지 권한을 확인합니다. 권한이 부여된 유저라면 클라이언트 쪽으로 쿼리문에 대한 결과를 반환해줍니다.

 

 

Connection 유지의 경우

Connection은 한번 연결된 경우 다시 Server Process와 연결할 필요가 없습니다. 인증되었기 때문에 요청을 보내면 Server Process는 작업을 진행합니다.

 

댓글0