[SQLD/P] Oracle DB 아키텍쳐(메모리 구조)

Hyo Kyun Lee·2022년 7월 26일
0

SQLD/P

목록 보기
4/82

1. Oracle DB 아키텍쳐 개요

Oracle DB Server를 실행하는 것은 Oracle 인스턴스를 실행하는 과정을 수반하고, 이때 인스턴스는 메모리 구조를 할당받으면서 다양한 파일을 저장한다.

2. Oracle DB Server

DB Server는 Database와 데이터를 주고받는 인스턴스로, 크게 두가지 영역으로 나눌 수 있다.

이때 Oracle 인스턴스를 실행하면, 내부적으로 공유 메모리인 SGA가 할당되며 이후 Background Process가 실행된다.
해당 인스턴스는 Database에 접근할 수 있고, 이에 따라 data를 사용할 수 있게 된다.

3. SGA 구조

기본적으로 Oracle DB Server는 1개 이상의 Oracle instance로 구성되어 있고, 특정 역할을 하는 다양한 메모리가 모여 SGA를 구성한다.

  • Shared pool - 세션간 공유할 수 있는 다양한 구성요소를 캐시에 저장한다.

※ Library Cache : SQL, 패키지 등 공유 가능한 부분을 포함한다.
※ Dictionary Cache : DB 참조정보(table group)을 포함한다.

  • DB Buffer Cache - 모든 인스턴스 유저가 접근할 수 있는 메모리이며, 읽은 데이터 파일 블록을 보관한다(빠른 접근 가능).
  • Stream Pool - DB간 streaming된 데이터(Queue 메시지 등) 및 트랜잭션을 관리한다.
  • Redo log Buffer - DML, DDL 등 DB변경사항 정보를 포함하며, 필요시 DB복구간 활용한다.
  • Large Pool - 병렬실행, DB백업 등 대규모 메모리 할당 시 사용한다.
  • Java pool - JVM의 모든 세션에서의 코드 및 데이터에 사용한다.

4. Database

실제 Data가 저장되어있는 Database 구조는 아래와 같다.

  • Control File - DB에 대한 물리적 구조정보를 저장하는 파일이며, 데이터 액세스 시 활용한다(없으면 데이터 접근 불가).
  • Data File - DB유저 및 메타 데이터, 데이터 딕셔너리 등을 포함하는 파일이다.
  • Online Redo File - DB인스턴스 복구 시 사용하며, DB server를 다시 Recovery 할 수 있는 파일이다.

5. 참고자료

패스트캠퍼스 - 데이터베이스와 SQLD
Oracle Server DB 메모리 구조 - https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=qowndyd&logNo=220995596404

0개의 댓글