Database/Oracle

Oracle 12c Instance Architecture

mazerunner 2022. 2. 16. 21:01

 

 

  • Database? Instance?

    오라클 데이터베이스는 데이터베이스와 인스턴스로 구분된다.

    오라클 데이터베이스 공식문서에 따라 데이터베이스와 인스턴스는 아래와 같이 정의된다.

    A database instance is a set of memory structures that manage database files.
    database is a set of physical files on disk created by the CREATE DATABASE statement.
    The instance manages its associated data and serves the users of the database.

    # Ref. https://docs.oracle.com/en/database/oracle/oracle-database/21/cncpt/introduction-to-oracle-database.html#GUID-CF765A7D-9429-4901-BF33-36E0B0220293

    즉, 데이터베이스는 데이터베이스를 구성하는 파일의 집합이고, 이러한 데이터베이스 파일을 관리하는 것을 인스턴스라 한다.
    쉽게, 물리적인 파일들의 집합이 
    데이터베이스이고, 논리적인 프로세스들의 집합이 인스턴스라 정의 할 수 있을 것 같다.

Oracle Database Server 구조.

 

2. Database 구성 요소

오라클 데이터베이스를 구성하는 물리적인 파일들은 크게 시스템 파일과 데이터 파일로 구분된다.

1) 데이터 파일 : 데이터를 저장하기 위해 구성되는 사용자 및 시스템 데이터 파일 집합.

* 시스템 데이터 파일 : 테이블스페이스명이 SYSTEM, SYSAUX, TEMP, UNDO..

* 사용자 데이터 파일 : 테이블스페이스명이 사용자가 지정한 이름

 

2) 시스템 파일 : 데이터베이스를 구성하기 위해 필요한 시스템 파일 집합.

데이터베이스 사용을 위해 필수로 필요한 파일은 Control files, Redo log files, Parameter file이 되고,

그 외 필수는 아니지만, 추가로 구성되는 Password File, ADR이 있으며,

나머지 Wallets, Backup File, Archive log file, Flashback Logs 등은 Optional File이다.

3. Instance 구성 요소

인스턴스는 크게 SGA + PGA + BackGround Processes 로 구성됨.

1) SGA (System Global Area)

– 하나의 Oracle Database Instance의 데이터와 제어 정보를 담고 있는 메모리 영역.

– SGA는 크게 Shared pool, Database Buffer Cache, Large Pool, Redo log buffer 이 존재하며,

그 외 Flashback Buffer, In-Memory Area, Memoptimize Pool, Java Pool, Streams Pool 등의 메모리 영역으로 구성.

2) PGA (Program Global Area)

– 서버 및 백그라운드 프로세스에서만 사용하기 위한 데이터와 제어 정보를 포함하는 비공유(non-shared) 메모리 영역.

– PGA는 또 UGA(User Global Area), Stack Space, Hash Area, Bitmap Merge Area 등의 메모리 영역으로 구성.

– UGA(User Global Area)는 또, SQL Work Areas, Session Memory, Private SQL Area로 구성.

 

3) BackGround Process

– 데이터베이스 인스턴스 구성요소로 데이터베이스를 운영하고 성능을 극대화하는데 필요한 유지 관리 작업을 수행함.

– 백그라운드 프로세스는 필수, 옵션, 작업자 프로세스 3가지로 나뉘어 진다.

(1) 필수 : PMON(Process Monitor Process), SMON(System Monitor Process), CKPT(Checkpoint Process).. 등

10가지가 있으며, 각 프로세스 중 하나라도 오류가 발생시 데이터베이스는 강제 종료될 정도로 필수 프로세스.

(2) 옵션 : ARCn(아카이버), CJQ0(작업 대기열 조정자), RVWR(복구 기록자) 등이 존재함.

(3) 작업자 : 다른 프로세스를 대신하여 작업을 수행하는 프로세스.

– 오라클 12c Architecture Diagram을 통해 보면 각 백그라운드 프로세스가 어떤 영역에서 활동하는지 간략하게 파악할 수 있다.

상세 내역은 https://docs.oracle.com/cd/E11882_01/server.112/e40402/bgprocesses.htm#REFRN104 를 통해 확인 가능.

 

Ref.

  1. Oracle Database 12c Instance Architecture.
    https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUTPUT_poster/poster.html#tab_1
  2. Oracle Database 19c Technical Architecture.
    https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/19/pdf/db-19c-architecture.pdf
  3. Oracle Database 21c Technical Architecture.
    https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/21/pdf/db-21c-architecture.pdf
  4. Oracle 공식 Guid Doc.
    https://docs.oracle.com/en/database/oracle/oracle-database/21/books.html
  5. Oracle Background Processes.
    https://docs.oracle.com/cd/E11882_01/server.112/e40402/bgprocesses.htm#REFRN104

 

출처: <http://www.mazerun88.ml/2021/11/17/oracle-database-instance-architecture/#more-169>