Dev./DB

오라클 데이터베이스 아키텍처 쉬운 정리

hotpotato0 2021. 9. 15. 22:44

개념(DB 란?)

Database(a.k.a DB)는 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합

자료항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높임

데이터 베이스는 최소 1개 이상의 인스턴스로 구성

  • 1개의 인스턴스 - 단일 데이터베이스
  • 다중 인스턴스 - RAC(Real Application Cluster) 데이터베이스 

이 중 Oracle Database는 오라클에서 관리하는 RDBMS(Relational Database Management System)이며,

가장 대중적으로 많이 사용

 

Data & Instance

  • 인스턴스 - 메모리 구조와 백그라운드 프로세스들의 구성, 컴퓨터 시스템의 메인 메모리에서 실행
  • 데이터베이스 - 다양한 파일로 구성 ( Control Files, Redo Log files, Data Files ...), 저장소(스토리지)에 존재

Instance - 어플리케이션은 실제 인스턴스를 통해 데이터에 접근

System Global Area / SGA - Shared Memory

Process Global Are / PGA - Private Memory

 

여러 서버 및 백그라운드 프로세스들이 SGA를 통해 shared memory 를 사용하고 각 프로세스별 PGA (Private Memory)를 별도로 사용. PGA -> ETA 라 부름.

 

Process 의 종류

  • Client Process - Application 또는 오라클 툴(like SQL Plus) 코드 실행
  • Oracle Process - 오라클 DB 코드 실행 ( 서버 프로세스, 백그라운드 프로세스 )

 

Server Process(a.k.a Foreground Process)

 - Client의 요청에 의해 수행 / Connection 이 끊기거나 Closed 되면 수행 불가 

    ex) SQL 파싱, 수행, 결과를 Client에게 반환 // 호텔, 레스토랑의 서버와 같은 역할 수행

 - User가 DB Connection 을 생성하면 시작, Connection 이 없으면 서버 프로세스는 존재하지 않음

    -> 메모리의 증가는 DB Connection 개수와 비례

 

Background Process

 - 데이터베이스 작동에 필요한 유지 관리 작업 수행

 - 각각의 background process는 분리된 작업을 갖고있지만, 다른 프로세스들과 같이 일함

 - Oracle DB는 DB Instance가 시작되면 자동으로 background process를 생성

    ex) 호텔, 레스토랑에서 보이진 않지만 실제 일을 하는 쉐프, 매니저 등

 

Oracle Database Storage Structures

  • 데이터의 저장과 관리를 위해, 오라클 DB는 Physical/Logical 스토리지 구조를 사용

 

Physical 스토리지 구조

  • Physical storage structures(PSS)에는 Data 파일, Control 파일, Redo 로그 파일이 있다.
  • PSS는 Operating system(OS) 수준에서 볼수 있다.

 

Logical 스토리지 구조

  • 오라클 DB는 DB에 모든 데이터에 대한 Logical 공간을 할당
  • 데이터베이스 공간 할당의 논리적 단위는 데이터 블록, 익스텐트, 세그먼트 및 테이블스페이스
  • Logical storage structures(LSS) 는 오라클 DB에 의해 만들어지고 인식되며, OS에는 알려져 있지 않음
  • Physical level에, 데이터는 디스크의 데이터 파일에 저장된다. 그리고 데이터파일의 데이터는 OS 블록에 저장 

 

  • Data Block : 오라클 DB 속 데이터 저장소의 가장 작은 논리적 단위, 1 논리 데이터 블록은 물리적 디스크 공간의 특정 바이트 수에 해당
  • Extent : 특정 종류의 정보를 저장하는데 할당된, 논리적으로 연속된 데이터 블록의 집합
  • Segment : 테이블 처럼 특정 DB 객체에 할당된 extents의 집합 
  • Tablespace : 1 또는 그이상의 segments를 포함한 db의 저장 단위

 

Logical 스토리지 계층 - 테이블 스페이스 내의 데이터 블록, extents 및 Segmant 간의 관계

LSS - PSS 사이의 관계

 

 

 

오라클 DB 아키텍쳐

 

참고자료 : Oracle Database Architecture - Part1

https://www.youtube.com/watch?v=cvx9wCQZnKw&ab_channel=UclidITSchool