Oracle

Oracle Database 12c ②

별다방체리콕 2024. 2. 20. 15:44

 

 

 

 

System Global Area

  • 데이터베이스 버퍼
    • SGA 의 데이터베이스 버퍼는 가장 최근에 사용된 데이터 블럭을 저장함
    • 이 버퍼는 아직까지 디스크에 완전히 쓰여지지 않는 수정된 데이터를 보유할 수도 있음
      LRU 알고리즘에 의하여 가장 오래 전에 사용된 것은 디스크에 저장하고 메모리에는 가장 최근에 사용된 데이터를 저장함으로써 디스크 입출력이 줄어들고, 따라서 데이터베이스 시스템의 성능은 증가됨
      인스턴스와 SGA 가 생성될 때, 인스턴스가 시작 시에 명시된 크기의 데이터베이스 버퍼들이 만들어짐
      이 버퍼들은 인스턴스가 남아있는 한 계속 존재함

 

  • 리두 로그 버퍼
    • SGA 리두 로그 버퍼는 데이터베이스에 가해진 변화를 기록하는 변경 항목을 저장함
      리두 로그 버퍼에 저장된 리두 항목들은 데이터베이스 복구에 사용되는 온라인 리두 로그 파일에 저장됨

 

  • 공유 풀
    • 공유 풀은 공유 SQL 영역과 같은 공유 메모리 구조를 포함하는 SGA 에 있는 한 구역
    • SQL 문장을 실행하기 위해 그 문장과 관련된 실행 계획과 구문분석 정보가 들어 있고, 다수의 애플리케이션에 의해 재사용됨

 

  • Large Pool
    • 선택적인 메모리 영역으로, shared server 나 XA interface 를 위한 세션 메모리 영역, I/O 서버 프로세스, 백업이나 restore 오퍼레이션을 위해 사용될 수 있음

 

  • JAVA Pool
    • JVM 내의 자바 코드나 데이터를 위한 서버 메모리로 사용될 수 있는 메모리 영역

 

  • Streams Pool
    • Oracle Streams 에 의해서만 사용되는 메모리 영역으로,
      buffered queue 메시지를 저장하며, 이는 Oracle Streams 의 캡쳐 프로세스와 적용 프로세스에 의해 사용됨

 

 

 

 

 

 

 

 

Program Global Area

  • 스택 영역
    • PGA 는 세션 변수, 배열 및 다른 정보를 저장하기 위해 할당된 메모리인 스택 영역을 포함함
  • 세션 정보
    • 전용 서버로 실행되는 인스턴스의 PGA 는 전용 SQL 영역이나 다른 정보와 같은 사용자 세션에 대한 추가 메모리가 필요함
      인스턴스가 공유 서버를 실행하는 경우 이 추가 메모리는 PGA 에 있지 않고 SGA 내에 할당됨

 

 

 

 

 

 

 

 

서버 프로세스

 

 

 

Oracle 은 서버 프로세스를 생성하여 접속된 사용자 프로세스의 요구 사항을 처리함

서버 프로세스는 사용자 프로세스와의 통신과 사용자 프로세스의 요구 사항을 수행하는 Oracle 과의 상호 작용을 담당함

예를 들어, 사용자가 시스템 글로벌 영역의 데이터베이스 버퍼에 없는 데이터에 의해 질의하면 관련 서버 프로세스는 데이터 파일로부터 해당 데이터 블록을 시스템 글로벌 영역으로 읽음

 

Oracle 은 서버 프로세스 당 사용자 프로세스 수를 조정하도록 구성될 수 있음

전용 서버 구성에서 서버 프로세스는 단일 사용자 프로세스에 대한 요구 사항을 처리함

공유 서버 구성에서는 여러 개의 사용자 프로세스가 적은 수의 서버 프로세스를 공유하여 서버 프로세스 수를 최소화하는 동시에 사용 가능한 시스템 자원 활용도를 최대화함

 

일부 시스템에서는 사용자 프로세스와 서버 프로세스가 분리되는 반면 다른 시스템에서는 단일 프로세스로 결합됨

시스템이 공유 서버를 사용하거나 사용자 프로세스와 서버 프로세스가 서로 다른 시스템에서 실행되면 사용자 프로세스와 서버 프로세스는 분리되어야 함

클라이언트 / 서버 시스템은 사용자 프로세스와 서버 프로세스를 분리하여 서로 다른 시스템에서 실행함

 

 

 

 

 

 

 

 

 

 

 

 

백그라운드 프로세스

 

 

 

 

Oracle 은 각 인스턴스에 대해 일련의 백그라운드 프로세스를 생성함

이 프로세스들은 여러 Oracle 프로그램이 실행해야 하는 기능을 통합함

기능을 통합하지 않는다면 각 사용자 프로세스마다 여러 개의 Oracle 프로그램을 실행해야 함

보다 나은 성능과 신뢰성을 위해 백그라운드 프로세스는 비동기적으로 I/O 를 수행하고 다른 Oracle 프로세스를 모니터하여 향상된 병렬 기법을 제공

 

SGA 와 Oracle 백그라운드 프로세스는 Oracle 인스턴스를 구성함

Oracle 인스턴스는 다음과 같은 프로세스들을 포함함

  • Database Writer Process
  • Log Writer Process
  • Checkpoint Process
  • System Monitor Process
  • Process Monitor Process
  • Recoverer Process
  • Job Queue Processes
  • Archiver Processes
  • Quere Monitor Processes

 

 

 

 

 

 

  • 데이터베이스 기록자
    • DBWR 은 데이터베이스 버퍼 캐쉬로 부터 데이터 파일로 수정괸 블럭을 씀
    • Oracle 의 로깅방법 때문에 트랜잭션이 완료되었을 때 블럭들을 디스크에 쓸 필요가 없도록 DBWR 의 수행 방법은 최적화 되어 있음
    • 보통 데이터베이스 버퍼의 빈 공간이 거의 없는 상태에서 SGA 로 데이터를 읽어 들일 필요가 있을 때 메모리 공간을 확보하기 위해서 수정된 블럭에 대한 디스크 쓰기가 행해짐

 

  • 로그 기록자
    • LGWR 은 리두 로그 항목들을 디스크에 씀
    • 리두 로그 데이터는 SGA 의 리두 로그 버퍼에 생겨나며, 트랜잭션이 완료되었을 때 LGWR가 리두 로그 버퍼의 내용을 온라인 리두 로그 파일에 씀

 

  • 체크 포인트
    • 일정 간격으로 SGA 의 모든 수정된 데이터베이스 버퍼는 DBWR 에 의해 데이터 파일에 쓰여지는데 이것을 Checkpoint 라 함
    • 이 프로세스는 checkpoint 실시 시점에서 DBWR 에 신호를 보내고 데이터베이스의 모든 데이터 파일과 컨트롤 파일을 수정하여 최근의 checkpoint 를 기록함

 

  • 시스템 모니터
    • SMON 은 인스턴스 시작 시와 다중 인스턴스 시스템에서 장애가 발생한 인스턴스 복구 시에 실행됨
    • 또, SMON 은 더 이상 사용되지 않는 세그먼트를 정리하고 파일 읽기 및 오프라인 에러에 의해 생기는 인스턴스의 복구 시에 완료되지 못하고 사장된 트랜잭션 들을 복구함

 

  • 프로세스 모니터
    • PMON 은 사용자 프로세스가 실패했을 때 프로세스 복구를 수행함
    • PMON 은 실패한 사용자 프로세스가 점유하고 있던 자원을 반납하고 캐쉬를 정리함

 

  • 복구자
    • RECO 는 분산 데이터베이스에서 네트워크 또는 시스템 장애로 미결정된 분산 트랜잭션을 처리하기 위해 사용됨
    • 로컬 RECO 는 정해진 시간마다 리모트 데이터베이스에 연결을 시도해 보고, 자동으로 로컬 내의 미결정된 트랜잭션을 커밋하거나 롤백 시킴

 

  • 작업 큐
    • 작업 큐 프로세스는 일반적으로 batch 작업에서 사용됨
      이 프로세스는 사용자 작업을 수행함
    • 사용자 작업의 시작지점과 수행간격 정보에 따라서 필요 시 기동되게 됨
    • 새로운 프로세스에 의해 사용된 리소스는 작업이 idle 상태로 전이될 때 함께 반납됨
  • 아카이버
    • ARCH 는 온라인 리두 로그 파일이 꽉 찼을 때 리두 로그 파일이 스위치 되면서 사용한 리두 로그 파일을 아카이브 저장소로 복사함
    • 아카이브 저장소는 일반적으로 다른 디스크 저장공간 이거나 테이프 장치임
    • ARCH 는 데이터베이스와 리두 로그가 ARCHIVELOG 모드 일 때만 수행됨

 

  • 대기열 모니터
    • 대기열 모니터는 Oracle Advanced Queuing 에 대한 메시지 대기열을 모니터하는 선택적 백그라운드 프로세스임
      최대 10개의 대기열 모니터 프로세스를 구성할 수 있음

'Oracle' 카테고리의 다른 글

Oracle 구조 구성 요소  (0) 2024.02.23
Oracle Database 12c ③  (0) 2024.02.20
Oracle Database 12c ①  (0) 2024.02.20
Oracle Database 11g Release  (1) 2024.02.13
centOS 7 oracle 19C 설치  (0) 2024.01.29