1. 오라클 DBMS를 크게 보면!

오라클DB의 기본 동작 방식 / 출처 : https://velog.io/@kw78999/DB%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%EB%9E%80

오라클DB는 크게 3가지로 볼 수 있다.

  • 데이터베이스 : 디스크에 저장된 데이터 집합. 물리적으로 데이터가 저장된 영역을 가리킴.
    Datafile, Redo Log File, Control File이 존재한다.
  • 메모리 : 오라클에서는 'SGA(System or Shared Global Area) 공유 메모리 영역'이라고 하는 DBMS 핵심 코어가 있다.
  • 프로세스 : 메모리에 엑세스하여 데이터베이스의 데이터 작업을 요청하는 객체를 말한다.

그리고 SGA 공유 메모리 영역프로세스 집합을 합쳐서 '인스턴스(Instance)' 라고 부른다!

 

Q. "DB(디스크 영역)에 직접 엑세스하지 않고, 굳이굳이 메모리 영역을 거치는 이유는...?"

A. 디스크를 경유한 입출력은 물리적으로 액세스 암(Arm)이 움직이면서 헤드를 통해 데이터를 읽고 쓰는 반면,

   메모리 캐시를 통한 입출력은 전기적 신호에 불과하기 때문에 디스크 I/O에 비교할 수 없이 빠르다!

 

2. 오라클 인스턴스의 구조

오라클 인스턴스를 기준으로 좀 더 자세히 살펴보자!

오라클 인스턴스에서의 프로세스는 세부적으로 2가지로 나뉜다. 

  • 서버 프로세스(Server Process) : 오라클DB에 속하면 뜨게 되는, 각 클라이언트를 위한 전용 프로세스.
    - SQL 파싱, 쿼리 최적화 수행, 커서 활용, 읽은 데이터 정렬 후 요청한 결과집합 전송 등의 사용자가 던지는 모든 명령을 처리한다고 보면 된다.
  • 백그라운드 프로세스(Background Process) : 사용자가 직접 명령으로 던지지는 않지만, DBMS 입장에서 묵묵히 중요하게 처리해야 할 일들을 수행하는 프로세스.
    - 데이터파일로부터 DB 버퍼 캐시로 블록을 적재하거나, Dirty 블록을 캐시에서 밀어냄으로써 Free 블록을 확보하는 일, Redo 로그 버퍼를 비우는 일 등을 수행

 

반드시 알아야 할 사실!

여러 개 인스턴스가 하나의 데이터베이스를 액세스하는 것은 가능하지만, 어떤 환경에서도 하나의 인스턴스가 여러 개의 데이터베이스를 액세스하는 것은 불가능하다.

 

* RAC (Real Application Cluster) 환경 : 여러 개의 인스턴스가 하나의 DB에 액세스 할 수 있는 환경으로, 이는 application이 DB에 접속할 수 있는 통로가 여러개가 가능하다는 것을 시사한다. 즉, 일반적으로 동시 접속이 이루어지는 상용 어플리케이션에서는 반드시 필요한 환경이라고 생각하면 된다. 


참고

조시형, 오라클 성능 고도화 원리와 해법 1

 

https://dataonair.or.kr/db-tech-reference/d-guide/sql/?mod=document&uid=357 

 

데이터베이스 아키텍처

1. 아키텍처 개관 가. 모델링의 정의 DBMS마다 데이터베이스에 대한 정의가 조금씩 다른데, Oracle에서는 디스크에 저장된 데이터 집합(Datafile, Redo Log File, Control File 등)을 데이터베이스(Database)라고

dataonair.or.kr

https://velog.io/@kw78999/DB%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%EB%9E%80

 

[DB] DB의 기본 아키텍처란?

오라클 성능 고도화 1,2 권을 정리할 생각이다.

velog.io

 

'DB > SQLP 공부' 카테고리의 다른 글

[OracleDB] Redo 와 Undo  (0) 2022.07.18
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기