SlideShare a Scribd company logo
1 of 22
Oracle Server Architecture
                 날짜 : 2010.03.10
                작성자 : 오마주 팀원
 오마주 멤버 : 박상수, 심규원, 장익수, 이돈규, 신종익, 이민상, 황한태
   Oracle Architecture 구조
   s                  PGA                     Instance
                       (Program Global Area)

    Server Process                              SGA
                                                (System Global Area)                                                                    Large Pool

                                                  Shared Pool                  Data Buffer Cache
                                                Library Cache                       KEEP                           Rado
                                                • SQL, SQL(recursive SQL)                                          Log                  Java Pool
                                                • Parse Test
                                                • Execution Plan                                                   Buffer
                                                                                   RECYCL
          Listener                              Data Dictionary Cache
                                                                                     E
                                                                                                  DEFAULT



                                                • Row Cache
                                                • Object Information                                                                  Streams Pool
                                                • Security




                                                Background                            Process
        User Process
                                                     PMON                   SMON            DBWn            CKPT        LGWR     ARCn         etc




                                               Oracle Database
                               Parameter
                                 FILE                                                                          Online          Offline Redo Log Feles
                                                                                            Control
                                                     Data Files                                                Redo
                                                                                             Files
                                                                                                                Log
                            Password FILE
   Oracle Architecture 개요

    • 규모 가변성(Scalability)
       • 증가하는 작업량을 받아들이고 이에 따라 시스템 자원을 조절하는 오라클의 능력
       • 10명의 사용자를 지원할 때와 마찬가지로 다섯 개의 동시 세션에서 10,000명의 사용자를
         지원할 때도 효율적


    • 신뢰성(Reliability)
       • 운영체제의 폭주나 전원 차단, 혹은 시스템 오류가 발생하더라도
         오라클은 데이터와 트랜잭션에 100% 안전성을 제공



    • 관리의 편의성(Manageability)
       • 메모리를 이용하는 방법과 디스크에 데이터를 저장하는 주기적으로 제어
       • 데이터 베이스에 접속하는 이용자를 위해 운영 시스템 프로세스를 할당하는 방법을 세부적으로 제어
   Oracle Instance

    • PGA(Program Global Area)
       • PGA 개념
           •    데이터베이스에 접속하는 모든 유저에게 할당되는 각각의 서버 프로세스가 독자적으로 사용하는 오라클 메
                모리
       • PGA 구조도
          PGA
                                세션 정보
                 정렬 공간                        커서 상태 정보         변수 저장 공간
                                 (Session
                (Sort Area)                   (Cursor State)   (Stack Space)
                               Information)




       • 메모리 영역 확인
           •    정렬 공간 : Order By 또는 Group By 등의 정렬을 수행하기 위한 공간이며 해당 공간에서만 정렬이 완료된
                다면 이를 메모리 정렬이라고 한다. 해당 정렬 메모리 공간이 부족하다면 디스크를 이용
           •    세션 정보 : 서버 프로세스에 의해 추출된 결과 값을 전달하기 위해 필요한 유저 프로세스의 세션 정보를 저
                장
           •    커서 상태 정보 : 해당 SQL 파싱(Parsing) 정보가 저장되어 있는 주소를 저장
           •    변수 저장 공간 : SQL 문장에 바인드 변수(Bind Variable)를 사용 했을 경우 해당 바인드 변수를 저장하는 공
                간
   Oracle Instance

    • SGA(System Global Area)
       • SGA 개념
             •       오라클이 데이터를 읽거나 변경하기 위해 사용하는 공용 메모리 영역
             •       공용 메모리 영역이므로 동일 데이터베이스에 접속하는 모든 사용자는 동일 SGA를 사용
       • SGA 구조도

          SGA
          (System Global Area)                                        Large Pool

            Shared Pool               Data Buffer Cache
          Library Cache                                     Rado
          • SQL, SQL(recursive SQL)                         Log       Java Pool
          • Parse Test
          • Execution Plan                                  Buffer
                                       RECYCL
                                                  DEFAULT
                                         E
          Data Dictionary Cache

          • Row Cache
          • Object Information                                       Streams Pool
          • Security



       • 메모리 영역 확인
             •       SGA(System Global Area)는 공유 풀(Shared Pool)에는 라이브러리 캐쉬와 데이터 딕셔너리 캐쉬가 존재
                     하며, 데이터 버퍼 캐쉬(Data Buffer Cache), 라두 로그 버퍼(Rado Log Buffer), 대형 풀(Large Pool),
                     자바 풀(Java Pool)로 구분
   Oracle Instance

    • SGA(System Global Area) – Shard Pool
       • 공유 풀 정의
            •    SGA를 관리하는 매카니즘, 파라메터 정보, 실행된 SQL, SQL 분석/실행 정보 및 오라클 오브젝트 정보를 저
                 장하는 메모리 공간
       • 공유 풀 동적 영역의 구분
            •    라이브러리 캐시 : 데이터베이스에 접속한 유저가 실행한 SQL, 오라클이 내부적으로 사용하는
                 SQL(Recursive SQL), SQL에 대한 분석 정보(Parse Tree) 및 실행 계획(Execution Plan) 이저장
            •    데이터 딕셔너리 캐시 : 데이터 딕셔너리 캐쉬는 로우 캐쉬(Row chche)라고도 부른다. 데이터 딕셔너리 캐
                 쉬에는 테이블, 인덱스, 함수 및 트리거 등 오라클 오브젝트 정보 및 권한 등의 정보가 저장
       • 공유 풀의 활용
            •    SQL문의 문법 확인(Syntax Check)
            •    데이터 베이스 분석
       •   공유 풀의 관리
                프로세스 스케줄링 기법                                  설명
            LRU(Least Recently Used)         최근에 가장 적게 사용한 것을 스케줄링

            FIFO(First in First out)         먼저 수행된 것을 먼저 처리하는 스케줄링

            LIFO(Last in First Out)          나중에 수행된 것을 먼저 처리하는 스케줄링
           ※ 위의 프로세스 스케줄링 기법은 대표적인 예이다. 오라클은 이러한 여러 가지 종류의 프로세스 스케줄링 기법 중 LRU 알고리즘을 주
                                              로 사용
   Oracle Instance

    • SGA(System Global Area) – Data Buffer Cache
       • 데이터 버퍼 캐시 정의
           •   오라클이 데이터를 읽고 수정하기 위해 디스크에 존재하는 데이터를 읽어 저장하는 메모리 공간
       • 데이터 버퍼 캐시의 활용
           •   데이터베이스 버퍼 캐시, 또는 버퍼 캐시라고도 불리는 블록 버퍼 캐시는 메모리로 읽어 들여진 데이터 블
               록의 복사본을 보관
           •   사용자 프로세스에서 지시에 따라 갱신된 데이터 블록으로서 서버 프로세스는 데이터 블록에 대한 읽기나
               쓰기 작업이 필요할 때 버퍼캐시에 보관된 데이터를 이용 함
           •   I/O를 발생하지 않고 메모리에서 읽고 기록하는 속도가 더 빠르기 때문에 DB성능을 향상
           •   SGA중 가장 많은 메모리 크기를 할당
       • 데이터 버퍼 캐시의 관리
                      프로세스                                설명
          Server Process               디스크로부터 필요한 데이터 블록을 읽어 데이터 버퍼 캐시에 저
                                       장
          DBWn(Database Writer)        데이터 버퍼 캐시에 저장되어 있는 데이터 블록 중 변경된 데이터
                                       블록의 내용을 디스크로 저장하는 프로세스
                                  ※ 데이터 버퍼 캐시를 사용하는 프로세스의 역할
   Oracle Instance

    • SGA(System Global Area) – Data Buffer Cache
       • 다중 데이터 버퍼 캐시 설정
                 Cache                             설명
          기본(Default)    일반 데이터 버퍼 캐시이며 DB _CACHE_SIZE 파라메터에 의해 설정

          고정(Keep)       데이터 버퍼 캐시로 읽혀진 데이터 블록은 재사용률이 높다고 판단하여 해당
                         데이터 버퍼 캐쉬의 내용을 삭제하지 않으며, 고정 테이터 버퍼 캐쉬는
                         DB_KEEP_CACHE_SIZE에 의해 설정
          재활용(Recycle)   데이터 버퍼 캐시는 재사용이 거의 안된다고 판단하여 해당 메모리 블록들은
                         짧은 시간 안에 제거되며, DB_RECYCLE_CACHE_SIZE 파라레터에 의해 설
                         정
          블록(block)      전체 데이터베이스의 디폴트 블록 크기를 정의하는 데이터베이스 파라미터
                         DB_BLOCK_SIZE 파라메터에 의해 설정
                                 ※ 데이터 버퍼 캐시의 종류
   Oracle Instance

    • SGA(System Global Area) – Redo Log Buffer
       • 리두 로그 버퍼 정의
           •   오브젝트 및 데이터 변경 시 생성되는 로그를 저장하는 SGA 메모리 공간
           •   데이터베이스 장애 시 복구를 수행하기 위해 모든 DML에 대한 로그를 기록
       • 리두 로그 버퍼의 활용
           •   리두 로그 버퍼에 기록된 후 백그라운드 프로세스인 LGWR 프로세스에 의해 온라인 리두 로그 파일을 위
               한 데이터를 보관하는데 사용
           •   인스턴스 를 복구하는 작업에 이용할 수 있도록 데이터베이스 내의 승인된 모든 트랜잭션을 기록하며, 트랜
               잭션 데이터가 임시로 리두 로그 버퍼내에 캐시된다는 점에서 버퍼 캐시와 비슷한 작동 방식을 함
           •   메모리 내에 저장된 임시 데이터는 주기적으로 디스크에 저장되며, 이와 같은 작동 방식을 통해 트랜잭션을
               디스크에 저장하는 I/O의 속도를 높임
       • 리두 로그 버퍼의 관리
           •   디스크 쓰기가 빈번한 로그 버퍼의 특성상, 데이터 버퍼 캐시나, 공유 풀, 라지 풀과 같은 SGA 메모리 공간
               중 크기가 작은 편에 속함
           •   리두 로그 버퍼의 디폴트 크기는 500k나 128k
           •   CPU_COUNT : 오라클을 실행 하는 호스트 운영체제의 CPU 개수
           •   LOG_BUFFER : 초기화 파라미터는 리두 로그 버퍼의 크기를 바이트 단위로 지정한다. 리두 로그 버퍼의 디
               폴트 세팅은 호스트 운영체제 시스템의 최대 블록 크기의 네 배
   Oracle Instance

    • SGA(System Global Area) – Large Pool
       • 대형 풀 정의
           •   공유 풀, 데이터 버퍼 캐시, 리두 로그 버퍼와 같이 SGA 필수 항목이 아닌 선택 적인 메모리 영역
       • 대형 풀의 활용
           •   대형 풀이라고 불리는 것은 영역의 크기가 SGA의 다른 메모리 영역보다 크기 때문이 아니라, 캐시된 데이
               터를 4k 이상의 덩어리로 보관 함
           •   메모리 덩어리는 일단 할당되면 더 이상 이용되지 않을 때까지 유지되며, 더 이상 이용되지 않으면 메모리
               에서 해제 됨
           •   UGA(User Global Area) : 공유 서버 프로세스를 위한 세션 관리
           •   RMAN(Recover Manager)의 저장 정보 : RMAN 유틸리티를 사용하면 여러 개의 디스크 I/O 슬래이브 프로
               세스를 기동하게 되며, 이때 BACKUP_DISK_IO=n과 BACKUP_TAPE_IO_SLAVE=TRUE로 파라메터가 설
               정되면 대형 풀을 이용함
           •   병렬 프로세스(Parallel Processing) : 여러 개의 프로세스를 기동하여 하나의 SQL을 수행하며, 대형 풀 설
               정이 되어 있지 않다면 공유 풀을 사용하게 되어 공유 풀의 공간 낭비를 하게 되므로 데이터베이스에 대형
               풀이 설정되어 있고 PARALLEL_AUTOMATIC_TUNING=TRUE 파라메터로 설정하여 낭비를 줄임
           •   I/O 슬래이브 프로세스의 정보 저장
           •   DBWn 백그라운드 프로세스는 해당 프로세스 아래 슬래이브 프로세스(Slave Process)를 기동하여 더 빠른
               디스크 I/O 작업을 수행
       • 리두 로그 버퍼의 관리
           •   데이터베이스가 공유 서버 모드로 설정되면, 서버 프로세스들은 자신의 세션 정보를 공유 풀이 아닌 대형
               풀에 보관 하여 일단 세션이 로그아웃되면 더 이상 이 메모리들이 이용도지 않음
   Oracle Instance

    • SGA(System Global Area) – Java Pool
       • 자바 풀 정의
           •   대형 풀과 같이 필요에 따라 지정해서 사용하는 SGA 영역
       • 대형 풀의 활용
           •   Oracle JVM에 접속해 있는 모든 세션에서 사용하는 자바코드가 사용하는 메모리 영역으로
               JAVA_POOL_SIZE 파라메터로 지정



    • SGA(System Global Area) – Streams Pool
       • 스트림 풀 정의
           •   Oracle 10g 부터 새롭게 등장한 새로운 유형의 풀을 지원
       • 스트림 풀의 활용
           •   오라클 스트림(다른 DB로 데이터전달)에서 사용하는 메모리 영역으로
               STREAMS_POOL_SIZE 파라메터로 크기를 설정
   Oracle Instance

    • 오라클 백그라운드 프로세스
       • 백그라운드 프로세스 개념
          •     연결된 사용자의 유무에 관계없이 항상 데이터 베이스의 일부로 실행
          •     각각의 프로세스는 저마다 임무를 가지고 있으며 대표적으로는 5개의 프로세스(PMON, SMON, DBWn,
                CKPT, LGWR, ARCn)가 존재 함


       • 백그라운드 프로세스 구조도
         Background         Process
              PMON   SMON   DBWn   CKPT   LGWR   ARCn   etc
   Oracle Instance

    • 오라클 백그라운드 프로세스
       • 백그라운드 프로세스 영역 확인
           •
               Cache                                   설명
         PMON(프로세스모니터)    서버 프로세스 감시, 호스트 운영체제 시스템 오라클 리스너에 DB 서비스
                          등록
         SMON(시스템 모니터)    시스템 재시작 시에 폭주 복구 담당, 임시 세크먼트들 정리, 딕셔너리 관리

         DBWn(데이터베이스 라이   메모리에서 변경된 버퍼를 디스크에 기록하는 프로세스
         터)
         CKPT(체크포인트)      데이터 버퍼 캐시의 변경된 데이터 블록을 데이터 파일에 기록하여 메모리
                          내의 데이터와 데이터 파일에 저장된 데이터를 일치시키는 일련의 작업
         LGWR(로그 라이터)     데이터 베이스의 승인된 트랜잭션을 온라인 리두 파일에 기록하는 작업

         etc              ARCH, CJQ0, Jnnn, Pnnn, RECO, Dnnn, Snnn
   Oracle Instance

    • 오라클 백그라운드 프로세스 - PMON
       • 프로세스 모니터(PMON) 역할
          •    서버 프로세스를 감시하여 잘못되거나 실패한 프로세스를 파괴하고 이를 자원을 풀어 줌
          •    테이블에서 수 많은 행을 변경 할 경우 서버 프로세스는 갱신하는 각각의 행에 대한 트랜잭션이 승인되거나
               룰백 될 때까지 잠겨두고 서버 프로세스가 다운 되면 관련 되었던 행들이 모두 잠긴 채로 남는 사태가 발생
               되는데 이와 같은 문제를 해결 해주는 부분이 PMON 프로세스
          •    공유 서버 프로세스의 경우에는 서버 프로세스를 다시 시작하여 사용자 프로세스 요청과 연결된 서비스를
               계속 진행 할 수 있도록 지원
          •    호스트 운영체제 시스템의 오라클 리스너에 데이터베이스의 서비스 등록
          •    PMON은 항상 실행되고 있는 것이 아니라 특정 작업들이 수행하기 위해 정기적으로 수행 됨

                SGA                    Data Buffer Cache   Redo Log Buffer
                (System Global Area)

                     Shared                                                             사원 테이블
                      Pool




              리소스 할당                   작업 롤백

                                                 Background Process
                                                                             락(Lock) goth 및 자원
                Server Process                                                   할당 해제
                                                           PMON

                                                                             테이블에 락(Lock) 발생
   Oracle Instance

    • 오라클 백그라운드 프로세스 - SMON
       • 시스템 모니터(SMON) 역할
          •   인스턴스가 폭주한 경우, SMON은 시스템 재시작 시에 폭주 복구를 담당하는 역할을 수행
          •   SMON은 할당된 후 해제되지 않은 임시 세그먼트들을 정리하고 딕셔너리 관리 테이블스페이스에서 많은
              수의 익스텐트가 있을 경우, 임시 세그먼트를 정리하는 작업에는 상당한 시간이 소요 되며 데이터베이스 시
              동 시에 성능 저하를 가져오므로 일정 시점에 임시 세그먼트를 정리
          •   SMON은 딕셔너리 관리 테이블스페이스에서 익스텐트를 병합
          •   ALTER TABLESPACE <테이블스페이스 이름> COALESCE 구문을 이용하여 수동으로 데이터베이스 내의
              빈 익스텐트들을 병합


                                                                 사원 테이블
                    장애 발생         인스턴스 복구 수행

                                                 테이블의 연속된 공간 통
                                                       합              테이블

                                                  OPTMAL 크기 유지
                                                                      룰백 세그먼트

                                                  임시 세그먼트 제거
                                                                      임시 세그먼트

                                  Background Process

                                         SMON
   Oracle Instance

    • 오라클 백그라운드 프로세스 - DBWn
       • 데이터베이스 라이터(DBWn) 역할
          •   테이터 블록은 디스크에서 버퍼 캐시로 읽어들여지며, 다양한 서버 프로세스에 의해 변경 되기 때문에 버퍼
              캐시내의 이 블록들을 다시 디스크로 저장해야 할 때는 데이터베이스 라이터(Database Writer)가 데이터 저
              장 업무를 수행
          •   데이터 버퍼 캐시의 버퍼는 데이터 블록과 동일 한 의미를 가짐

                Data Buffer Cache                       설명
                    LRU 작동
              Dirty Buffer(더티 버퍼)     변경은 완료되었지만 디스크에 기록되지 않은 버퍼

              Pinned Buffer(사용중 버퍼)   변경중인 버퍼

              Free Buffer(프리 버퍼)      변경이 완료된 후 디스크에 기록된 버퍼

              Crean(제거버퍼)             삭제대상
   Oracle Instance

    • 오라클 백그라운드 프로세스 - DBWn
       • 데이터베이스 라이터(DBWn) 역할
          •    메모리에서 변경된 버퍼를 디스크에 기록하는 프로세스



          SGA                    Data Buffer Cache   Redo Log Buffer
          (System Global Area)

               Shared                                                  TEST TABLE
                Pool
                                  A+ B
                                                                        A




                                           Background Process
                                                                       변경된 데이터 저장
          UPDATE TEST                                DBWn
            SET a=‘b’
            WHERE
          name=“Omaju’
   Oracle Instance

    • 오라클 백그라운드 프로세스 - LGWR
       • 로그 라이터(LGWR) 역할
           •   데이터베이스의 승인된 트랜잭션을 온라인 리두 파일에 기록하는 작업을 담당
           •   리두 로그 버퍼의 모든 데이터를 활성화된 리두 로그 파일로 저장하며, 다음과 같은 네 가지의 다른 상황이
               발생하면 쓰기 작업을 수행
                 •   트랜잭션의 승인
                 •   리두 로그 버퍼가 1/3 이상 채워짐
                 •   리두 로그 버퍼 내의 데이터가 1MB 이상 채워짐
                 •   매 3초가 경과됨
           •   리두 로그 버퍼의 아키텍처

                        종류                                   설명
               빠른 커밋(Fast Commit)    유저가 특정 작업을 수행하고 커밋(commit)을 수행한 후에는 즉시 데이터
                                     베이스에 저장하여 복구 및 조회를 할 수 있게 하겠다는 뜻
               선 로그 기법(Log Ahead)    DML(Insert, Update, Delete) 작업을 수행할 경우 실제 데이터에 대해 DML
                                     을 수행하기 전에 데이터들의 변경에 대한 내용을 리두 로그 버퍼에 미리 저
                                     장하며 작업 중 장애가 발생하여도 복구를 수행 할 수 있기 때문에 오라클에
                                     서는 선 로그 기법을 주로 사용
               동시 쓰기                 동시 쓰기는 커밋시 로그를 기록하는 부분에서 같은 시점에 커밋되는 작업
                                     들에 대해서는 동시에 리두 로그 파일에 기록
   Oracle Instance

    • 오라클 백그라운드 프로세스 - LGWR
       • 로그 라이터(LGWR) 역할
           •    LGWR 백그라운드 프로세스는 리두 로그 버퍼에 기록된 내용을 리두 로그 파일로 저장



          SGA                      Data Buffer Cache   Redo Log Buffer
          (System Global Area)
                                                            A -> B
                Shared
                 Pool                                       C-> D
                                    A+ B     C+ D




          Background Process
                                                                          B           A -> B
                                                                                      C -> B
                                                                               C
               DBWn              LGWR
                                                                         TEST 테이블   리두 로그 파일
   Oracle Instance

    • 오라클 백그라운드 프로세스 - CKPT
       • 체크포인트(CKPT) 역할
          •    CKPT 프로세스는 모든 컨트롤 파일과 데이터 파일의 헤더를 최근의 체크포인트 정보를 갱신하는 역할
          •    데이터 버퍼 캐시의 변경된 데이터 블록을 데이터 파일에 기록 하여 메모리 내의 데이터와 데이터 파일에
               저장된 데이터를 일치시키는 일련의 작업
                    •   DBWn(데이터베이스 라이터) : 주기적으로 자신의 버퍼를 디스크에 저장하여 체크포인트를 발생
                    •   CKPT(체크포인트) : 로그 스위치 체크 포인트 발생 이후 데이터베이스 복구작업
                    •   SMON(시스템 모니터) : 데이터베이스 복구를 담당하여, 데이터 파일 내에 마지막으로 기록된 체크포인트 이후 온라인 리두
                        로그 파일의 모든 항목은 반드시 데이터 파일로 다시 적용
                    •   매 3초가 경과됨


          SGA                      Data Buffer Cache   Redo Log Buffer
          (System Global Area)

               Shared
                Pool

                                                                             리두 로그 파일



                          Background Process

                            DBWn                CKPT            SMON


                                                                               테이블
   Oracle Instance

    • 오라클 백그라운드 프로세스 - ARCn
       • 기록기(ARCn) 역할
           •   만약 디스크에 문제가 발생 된다면 데이터베이스를 복구 할 수 있는 유일한 방법은 백업을 이용하지만 일반
               적으로 백업은 월간, 주간, 혹은 매일 질 수도 있으며, 불행하게도 리두 로그 파일은 하루 동안의 트랜잭션을
               모두 담기 위한 것이 아니라고 할 수 있기 때문에 이부분을 기록기(Archiver)프로세스의 도움을 받음
           •   데이터 베이스가 작동되는 동안 이와 같은 백업 작업을 수행하며, 데이터베이스에 변경이 기록되는 동안 실
               행될 수 있으므로, 기록기 실행을 위해 데이터베이스를 중단할 필요가 없음
           •   기록기 프로세스는 로그 스위치가 일어나는 바로 이 시점에 리두 로그의 트랜잭션 데이터를 테이프나 네트
               워크 파일 파일 시스템과 같은 다른 오프라인 저장 매체로 전송 하여 사용 가능 하며, 로그 라이터는 다음
               리두 로그 파일로의 쓰기 작업을 계속 수행 가능
   References
    •   초보자를 위한 Oracle 10g – 권순용, 김지한, 황오현 저
    •   Beginning Oracle Programming – Sean Dilon 외 4인 공저
    •   http://www.oracle.com/pls/db102/homepage
    •   http://kr.forums.oracle.com/forums/thread.jspa?messageID=1484145
    •   http://omaju.springnote.com/ - 오마주 스터디 스프링 노트
    •   http://cafe.daum.net/ocp - 오라클 최고의 전문가 및 스터디 카페

More Related Content

Viewers also liked

Oracle enterprise linux 7 설치
Oracle enterprise linux 7 설치Oracle enterprise linux 7 설치
Oracle enterprise linux 7 설치pat2001
 
Service-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a NutshellService-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a NutshellSamsung Electronics
 
Installation Openstack Swift
Installation Openstack SwiftInstallation Openstack Swift
Installation Openstack Swiftymtech
 
[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index흥배 최
 
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?흥배 최
 
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템흥배 최
 
Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것흥배 최
 
6_designDIVE 친환경생활편_그린카드로 특권을 가질 수 있는 여가생활을 누려라 by 초롱물범이
6_designDIVE 친환경생활편_그린카드로 특권을 가질 수 있는 여가생활을 누려라 by 초롱물범이6_designDIVE 친환경생활편_그린카드로 특권을 가질 수 있는 여가생활을 누려라 by 초롱물범이
6_designDIVE 친환경생활편_그린카드로 특권을 가질 수 있는 여가생활을 누려라 by 초롱물범이designDIVE
 
V05 254491 sms시스템
V05 254491 sms시스템V05 254491 sms시스템
V05 254491 sms시스템Charlie Lee
 
노후 서버 교체 필요성
노후 서버 교체 필요성노후 서버 교체 필요성
노후 서버 교체 필요성YeonJi Yoon
 
클라우드컴퓨팅 V4
클라우드컴퓨팅 V4클라우드컴퓨팅 V4
클라우드컴퓨팅 V4Alex Yang
 
Cloud, AWS, GAE(google app engine)
Cloud, AWS, GAE(google app engine)Cloud, AWS, GAE(google app engine)
Cloud, AWS, GAE(google app engine)Daehee Han
 
AWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
AWS Cloud Design Pattenr (Korean) - CDP Seminar in KoreaAWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
AWS Cloud Design Pattenr (Korean) - CDP Seminar in KoreaSORACOM, INC
 
Aws new services introduction(사내 전파 교육)
Aws new services introduction(사내 전파 교육)Aws new services introduction(사내 전파 교육)
Aws new services introduction(사내 전파 교육)Youngseok Jung
 
귀찮은 기능, jQuery Library 에 맡겨버리자!
귀찮은 기능, jQuery Library 에 맡겨버리자!귀찮은 기능, jQuery Library 에 맡겨버리자!
귀찮은 기능, jQuery Library 에 맡겨버리자!KYUNGSUK Cho
 
KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론Hyunjik Bae
 
시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203doo rip choi
 
AWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaS
AWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaSAWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaS
AWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaSRightScale
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기OnGameServer
 
오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...
오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...
오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...탑크리에듀(구로디지털단지역3번출구 2분거리)
 

Viewers also liked (20)

Oracle enterprise linux 7 설치
Oracle enterprise linux 7 설치Oracle enterprise linux 7 설치
Oracle enterprise linux 7 설치
 
Service-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a NutshellService-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a Nutshell
 
Installation Openstack Swift
Installation Openstack SwiftInstallation Openstack Swift
Installation Openstack Swift
 
[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index
 
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
 
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
 
Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것
 
6_designDIVE 친환경생활편_그린카드로 특권을 가질 수 있는 여가생활을 누려라 by 초롱물범이
6_designDIVE 친환경생활편_그린카드로 특권을 가질 수 있는 여가생활을 누려라 by 초롱물범이6_designDIVE 친환경생활편_그린카드로 특권을 가질 수 있는 여가생활을 누려라 by 초롱물범이
6_designDIVE 친환경생활편_그린카드로 특권을 가질 수 있는 여가생활을 누려라 by 초롱물범이
 
V05 254491 sms시스템
V05 254491 sms시스템V05 254491 sms시스템
V05 254491 sms시스템
 
노후 서버 교체 필요성
노후 서버 교체 필요성노후 서버 교체 필요성
노후 서버 교체 필요성
 
클라우드컴퓨팅 V4
클라우드컴퓨팅 V4클라우드컴퓨팅 V4
클라우드컴퓨팅 V4
 
Cloud, AWS, GAE(google app engine)
Cloud, AWS, GAE(google app engine)Cloud, AWS, GAE(google app engine)
Cloud, AWS, GAE(google app engine)
 
AWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
AWS Cloud Design Pattenr (Korean) - CDP Seminar in KoreaAWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
AWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
 
Aws new services introduction(사내 전파 교육)
Aws new services introduction(사내 전파 교육)Aws new services introduction(사내 전파 교육)
Aws new services introduction(사내 전파 교육)
 
귀찮은 기능, jQuery Library 에 맡겨버리자!
귀찮은 기능, jQuery Library 에 맡겨버리자!귀찮은 기능, jQuery Library 에 맡겨버리자!
귀찮은 기능, jQuery Library 에 맡겨버리자!
 
KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론
 
시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203
 
AWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaS
AWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaSAWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaS
AWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaS
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기
 
오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...
오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...
오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...
 

Similar to Oracle Server Architecture

그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조Choonghyun Yang
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재PgDay.Seoul
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4Seok-joon Yun
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)Amazon Web Services Korea
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
AWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAmazon Web Services Korea
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝Mungyu Choi
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)Amazon Web Services Korea
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoGruter
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoMatthew (정재화)
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들Woong Seok Kang
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arcNAVER D2
 
ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회JaM2in
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Gruter
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017Amazon Web Services Korea
 
2012 빅데이터 big data 발표자료
2012 빅데이터 big data 발표자료2012 빅데이터 big data 발표자료
2012 빅데이터 big data 발표자료Wooseung Kim
 

Similar to Oracle Server Architecture (20)

그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
 
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
AWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep Dive
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
 
NoSQL
NoSQLNoSQL
NoSQL
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
 
ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
steeleye Replication
steeleye Replication steeleye Replication
steeleye Replication
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
 
2012 빅데이터 big data 발표자료
2012 빅데이터 big data 발표자료2012 빅데이터 big data 발표자료
2012 빅데이터 big data 발표자료
 

Oracle Server Architecture

  • 1. Oracle Server Architecture 날짜 : 2010.03.10 작성자 : 오마주 팀원 오마주 멤버 : 박상수, 심규원, 장익수, 이돈규, 신종익, 이민상, 황한태
  • 2. Oracle Architecture 구조  s PGA Instance (Program Global Area) Server Process SGA (System Global Area) Large Pool Shared Pool Data Buffer Cache Library Cache KEEP Rado • SQL, SQL(recursive SQL) Log Java Pool • Parse Test • Execution Plan Buffer RECYCL Listener Data Dictionary Cache E DEFAULT • Row Cache • Object Information Streams Pool • Security Background Process User Process PMON SMON DBWn CKPT LGWR ARCn etc Oracle Database Parameter FILE Online Offline Redo Log Feles Control Data Files Redo Files Log Password FILE
  • 3. Oracle Architecture 개요 • 규모 가변성(Scalability) • 증가하는 작업량을 받아들이고 이에 따라 시스템 자원을 조절하는 오라클의 능력 • 10명의 사용자를 지원할 때와 마찬가지로 다섯 개의 동시 세션에서 10,000명의 사용자를 지원할 때도 효율적 • 신뢰성(Reliability) • 운영체제의 폭주나 전원 차단, 혹은 시스템 오류가 발생하더라도 오라클은 데이터와 트랜잭션에 100% 안전성을 제공 • 관리의 편의성(Manageability) • 메모리를 이용하는 방법과 디스크에 데이터를 저장하는 주기적으로 제어 • 데이터 베이스에 접속하는 이용자를 위해 운영 시스템 프로세스를 할당하는 방법을 세부적으로 제어
  • 4. Oracle Instance • PGA(Program Global Area) • PGA 개념 • 데이터베이스에 접속하는 모든 유저에게 할당되는 각각의 서버 프로세스가 독자적으로 사용하는 오라클 메 모리 • PGA 구조도 PGA 세션 정보 정렬 공간 커서 상태 정보 변수 저장 공간 (Session (Sort Area) (Cursor State) (Stack Space) Information) • 메모리 영역 확인 • 정렬 공간 : Order By 또는 Group By 등의 정렬을 수행하기 위한 공간이며 해당 공간에서만 정렬이 완료된 다면 이를 메모리 정렬이라고 한다. 해당 정렬 메모리 공간이 부족하다면 디스크를 이용 • 세션 정보 : 서버 프로세스에 의해 추출된 결과 값을 전달하기 위해 필요한 유저 프로세스의 세션 정보를 저 장 • 커서 상태 정보 : 해당 SQL 파싱(Parsing) 정보가 저장되어 있는 주소를 저장 • 변수 저장 공간 : SQL 문장에 바인드 변수(Bind Variable)를 사용 했을 경우 해당 바인드 변수를 저장하는 공 간
  • 5. Oracle Instance • SGA(System Global Area) • SGA 개념 • 오라클이 데이터를 읽거나 변경하기 위해 사용하는 공용 메모리 영역 • 공용 메모리 영역이므로 동일 데이터베이스에 접속하는 모든 사용자는 동일 SGA를 사용 • SGA 구조도 SGA (System Global Area) Large Pool Shared Pool Data Buffer Cache Library Cache Rado • SQL, SQL(recursive SQL) Log Java Pool • Parse Test • Execution Plan Buffer RECYCL DEFAULT E Data Dictionary Cache • Row Cache • Object Information Streams Pool • Security • 메모리 영역 확인 • SGA(System Global Area)는 공유 풀(Shared Pool)에는 라이브러리 캐쉬와 데이터 딕셔너리 캐쉬가 존재 하며, 데이터 버퍼 캐쉬(Data Buffer Cache), 라두 로그 버퍼(Rado Log Buffer), 대형 풀(Large Pool), 자바 풀(Java Pool)로 구분
  • 6. Oracle Instance • SGA(System Global Area) – Shard Pool • 공유 풀 정의 • SGA를 관리하는 매카니즘, 파라메터 정보, 실행된 SQL, SQL 분석/실행 정보 및 오라클 오브젝트 정보를 저 장하는 메모리 공간 • 공유 풀 동적 영역의 구분 • 라이브러리 캐시 : 데이터베이스에 접속한 유저가 실행한 SQL, 오라클이 내부적으로 사용하는 SQL(Recursive SQL), SQL에 대한 분석 정보(Parse Tree) 및 실행 계획(Execution Plan) 이저장 • 데이터 딕셔너리 캐시 : 데이터 딕셔너리 캐쉬는 로우 캐쉬(Row chche)라고도 부른다. 데이터 딕셔너리 캐 쉬에는 테이블, 인덱스, 함수 및 트리거 등 오라클 오브젝트 정보 및 권한 등의 정보가 저장 • 공유 풀의 활용 • SQL문의 문법 확인(Syntax Check) • 데이터 베이스 분석 • 공유 풀의 관리 프로세스 스케줄링 기법 설명 LRU(Least Recently Used) 최근에 가장 적게 사용한 것을 스케줄링 FIFO(First in First out) 먼저 수행된 것을 먼저 처리하는 스케줄링 LIFO(Last in First Out) 나중에 수행된 것을 먼저 처리하는 스케줄링 ※ 위의 프로세스 스케줄링 기법은 대표적인 예이다. 오라클은 이러한 여러 가지 종류의 프로세스 스케줄링 기법 중 LRU 알고리즘을 주 로 사용
  • 7. Oracle Instance • SGA(System Global Area) – Data Buffer Cache • 데이터 버퍼 캐시 정의 • 오라클이 데이터를 읽고 수정하기 위해 디스크에 존재하는 데이터를 읽어 저장하는 메모리 공간 • 데이터 버퍼 캐시의 활용 • 데이터베이스 버퍼 캐시, 또는 버퍼 캐시라고도 불리는 블록 버퍼 캐시는 메모리로 읽어 들여진 데이터 블 록의 복사본을 보관 • 사용자 프로세스에서 지시에 따라 갱신된 데이터 블록으로서 서버 프로세스는 데이터 블록에 대한 읽기나 쓰기 작업이 필요할 때 버퍼캐시에 보관된 데이터를 이용 함 • I/O를 발생하지 않고 메모리에서 읽고 기록하는 속도가 더 빠르기 때문에 DB성능을 향상 • SGA중 가장 많은 메모리 크기를 할당 • 데이터 버퍼 캐시의 관리 프로세스 설명 Server Process 디스크로부터 필요한 데이터 블록을 읽어 데이터 버퍼 캐시에 저 장 DBWn(Database Writer) 데이터 버퍼 캐시에 저장되어 있는 데이터 블록 중 변경된 데이터 블록의 내용을 디스크로 저장하는 프로세스 ※ 데이터 버퍼 캐시를 사용하는 프로세스의 역할
  • 8. Oracle Instance • SGA(System Global Area) – Data Buffer Cache • 다중 데이터 버퍼 캐시 설정 Cache 설명 기본(Default) 일반 데이터 버퍼 캐시이며 DB _CACHE_SIZE 파라메터에 의해 설정 고정(Keep) 데이터 버퍼 캐시로 읽혀진 데이터 블록은 재사용률이 높다고 판단하여 해당 데이터 버퍼 캐쉬의 내용을 삭제하지 않으며, 고정 테이터 버퍼 캐쉬는 DB_KEEP_CACHE_SIZE에 의해 설정 재활용(Recycle) 데이터 버퍼 캐시는 재사용이 거의 안된다고 판단하여 해당 메모리 블록들은 짧은 시간 안에 제거되며, DB_RECYCLE_CACHE_SIZE 파라레터에 의해 설 정 블록(block) 전체 데이터베이스의 디폴트 블록 크기를 정의하는 데이터베이스 파라미터 DB_BLOCK_SIZE 파라메터에 의해 설정 ※ 데이터 버퍼 캐시의 종류
  • 9. Oracle Instance • SGA(System Global Area) – Redo Log Buffer • 리두 로그 버퍼 정의 • 오브젝트 및 데이터 변경 시 생성되는 로그를 저장하는 SGA 메모리 공간 • 데이터베이스 장애 시 복구를 수행하기 위해 모든 DML에 대한 로그를 기록 • 리두 로그 버퍼의 활용 • 리두 로그 버퍼에 기록된 후 백그라운드 프로세스인 LGWR 프로세스에 의해 온라인 리두 로그 파일을 위 한 데이터를 보관하는데 사용 • 인스턴스 를 복구하는 작업에 이용할 수 있도록 데이터베이스 내의 승인된 모든 트랜잭션을 기록하며, 트랜 잭션 데이터가 임시로 리두 로그 버퍼내에 캐시된다는 점에서 버퍼 캐시와 비슷한 작동 방식을 함 • 메모리 내에 저장된 임시 데이터는 주기적으로 디스크에 저장되며, 이와 같은 작동 방식을 통해 트랜잭션을 디스크에 저장하는 I/O의 속도를 높임 • 리두 로그 버퍼의 관리 • 디스크 쓰기가 빈번한 로그 버퍼의 특성상, 데이터 버퍼 캐시나, 공유 풀, 라지 풀과 같은 SGA 메모리 공간 중 크기가 작은 편에 속함 • 리두 로그 버퍼의 디폴트 크기는 500k나 128k • CPU_COUNT : 오라클을 실행 하는 호스트 운영체제의 CPU 개수 • LOG_BUFFER : 초기화 파라미터는 리두 로그 버퍼의 크기를 바이트 단위로 지정한다. 리두 로그 버퍼의 디 폴트 세팅은 호스트 운영체제 시스템의 최대 블록 크기의 네 배
  • 10. Oracle Instance • SGA(System Global Area) – Large Pool • 대형 풀 정의 • 공유 풀, 데이터 버퍼 캐시, 리두 로그 버퍼와 같이 SGA 필수 항목이 아닌 선택 적인 메모리 영역 • 대형 풀의 활용 • 대형 풀이라고 불리는 것은 영역의 크기가 SGA의 다른 메모리 영역보다 크기 때문이 아니라, 캐시된 데이 터를 4k 이상의 덩어리로 보관 함 • 메모리 덩어리는 일단 할당되면 더 이상 이용되지 않을 때까지 유지되며, 더 이상 이용되지 않으면 메모리 에서 해제 됨 • UGA(User Global Area) : 공유 서버 프로세스를 위한 세션 관리 • RMAN(Recover Manager)의 저장 정보 : RMAN 유틸리티를 사용하면 여러 개의 디스크 I/O 슬래이브 프로 세스를 기동하게 되며, 이때 BACKUP_DISK_IO=n과 BACKUP_TAPE_IO_SLAVE=TRUE로 파라메터가 설 정되면 대형 풀을 이용함 • 병렬 프로세스(Parallel Processing) : 여러 개의 프로세스를 기동하여 하나의 SQL을 수행하며, 대형 풀 설 정이 되어 있지 않다면 공유 풀을 사용하게 되어 공유 풀의 공간 낭비를 하게 되므로 데이터베이스에 대형 풀이 설정되어 있고 PARALLEL_AUTOMATIC_TUNING=TRUE 파라메터로 설정하여 낭비를 줄임 • I/O 슬래이브 프로세스의 정보 저장 • DBWn 백그라운드 프로세스는 해당 프로세스 아래 슬래이브 프로세스(Slave Process)를 기동하여 더 빠른 디스크 I/O 작업을 수행 • 리두 로그 버퍼의 관리 • 데이터베이스가 공유 서버 모드로 설정되면, 서버 프로세스들은 자신의 세션 정보를 공유 풀이 아닌 대형 풀에 보관 하여 일단 세션이 로그아웃되면 더 이상 이 메모리들이 이용도지 않음
  • 11. Oracle Instance • SGA(System Global Area) – Java Pool • 자바 풀 정의 • 대형 풀과 같이 필요에 따라 지정해서 사용하는 SGA 영역 • 대형 풀의 활용 • Oracle JVM에 접속해 있는 모든 세션에서 사용하는 자바코드가 사용하는 메모리 영역으로 JAVA_POOL_SIZE 파라메터로 지정 • SGA(System Global Area) – Streams Pool • 스트림 풀 정의 • Oracle 10g 부터 새롭게 등장한 새로운 유형의 풀을 지원 • 스트림 풀의 활용 • 오라클 스트림(다른 DB로 데이터전달)에서 사용하는 메모리 영역으로 STREAMS_POOL_SIZE 파라메터로 크기를 설정
  • 12. Oracle Instance • 오라클 백그라운드 프로세스 • 백그라운드 프로세스 개념 • 연결된 사용자의 유무에 관계없이 항상 데이터 베이스의 일부로 실행 • 각각의 프로세스는 저마다 임무를 가지고 있으며 대표적으로는 5개의 프로세스(PMON, SMON, DBWn, CKPT, LGWR, ARCn)가 존재 함 • 백그라운드 프로세스 구조도 Background Process PMON SMON DBWn CKPT LGWR ARCn etc
  • 13. Oracle Instance • 오라클 백그라운드 프로세스 • 백그라운드 프로세스 영역 확인 • Cache 설명 PMON(프로세스모니터) 서버 프로세스 감시, 호스트 운영체제 시스템 오라클 리스너에 DB 서비스 등록 SMON(시스템 모니터) 시스템 재시작 시에 폭주 복구 담당, 임시 세크먼트들 정리, 딕셔너리 관리 DBWn(데이터베이스 라이 메모리에서 변경된 버퍼를 디스크에 기록하는 프로세스 터) CKPT(체크포인트) 데이터 버퍼 캐시의 변경된 데이터 블록을 데이터 파일에 기록하여 메모리 내의 데이터와 데이터 파일에 저장된 데이터를 일치시키는 일련의 작업 LGWR(로그 라이터) 데이터 베이스의 승인된 트랜잭션을 온라인 리두 파일에 기록하는 작업 etc ARCH, CJQ0, Jnnn, Pnnn, RECO, Dnnn, Snnn
  • 14. Oracle Instance • 오라클 백그라운드 프로세스 - PMON • 프로세스 모니터(PMON) 역할 • 서버 프로세스를 감시하여 잘못되거나 실패한 프로세스를 파괴하고 이를 자원을 풀어 줌 • 테이블에서 수 많은 행을 변경 할 경우 서버 프로세스는 갱신하는 각각의 행에 대한 트랜잭션이 승인되거나 룰백 될 때까지 잠겨두고 서버 프로세스가 다운 되면 관련 되었던 행들이 모두 잠긴 채로 남는 사태가 발생 되는데 이와 같은 문제를 해결 해주는 부분이 PMON 프로세스 • 공유 서버 프로세스의 경우에는 서버 프로세스를 다시 시작하여 사용자 프로세스 요청과 연결된 서비스를 계속 진행 할 수 있도록 지원 • 호스트 운영체제 시스템의 오라클 리스너에 데이터베이스의 서비스 등록 • PMON은 항상 실행되고 있는 것이 아니라 특정 작업들이 수행하기 위해 정기적으로 수행 됨 SGA Data Buffer Cache Redo Log Buffer (System Global Area) Shared 사원 테이블 Pool 리소스 할당 작업 롤백 Background Process 락(Lock) goth 및 자원 Server Process 할당 해제 PMON 테이블에 락(Lock) 발생
  • 15. Oracle Instance • 오라클 백그라운드 프로세스 - SMON • 시스템 모니터(SMON) 역할 • 인스턴스가 폭주한 경우, SMON은 시스템 재시작 시에 폭주 복구를 담당하는 역할을 수행 • SMON은 할당된 후 해제되지 않은 임시 세그먼트들을 정리하고 딕셔너리 관리 테이블스페이스에서 많은 수의 익스텐트가 있을 경우, 임시 세그먼트를 정리하는 작업에는 상당한 시간이 소요 되며 데이터베이스 시 동 시에 성능 저하를 가져오므로 일정 시점에 임시 세그먼트를 정리 • SMON은 딕셔너리 관리 테이블스페이스에서 익스텐트를 병합 • ALTER TABLESPACE <테이블스페이스 이름> COALESCE 구문을 이용하여 수동으로 데이터베이스 내의 빈 익스텐트들을 병합 사원 테이블 장애 발생 인스턴스 복구 수행 테이블의 연속된 공간 통 합 테이블 OPTMAL 크기 유지 룰백 세그먼트 임시 세그먼트 제거 임시 세그먼트 Background Process SMON
  • 16. Oracle Instance • 오라클 백그라운드 프로세스 - DBWn • 데이터베이스 라이터(DBWn) 역할 • 테이터 블록은 디스크에서 버퍼 캐시로 읽어들여지며, 다양한 서버 프로세스에 의해 변경 되기 때문에 버퍼 캐시내의 이 블록들을 다시 디스크로 저장해야 할 때는 데이터베이스 라이터(Database Writer)가 데이터 저 장 업무를 수행 • 데이터 버퍼 캐시의 버퍼는 데이터 블록과 동일 한 의미를 가짐 Data Buffer Cache 설명 LRU 작동 Dirty Buffer(더티 버퍼) 변경은 완료되었지만 디스크에 기록되지 않은 버퍼 Pinned Buffer(사용중 버퍼) 변경중인 버퍼 Free Buffer(프리 버퍼) 변경이 완료된 후 디스크에 기록된 버퍼 Crean(제거버퍼) 삭제대상
  • 17. Oracle Instance • 오라클 백그라운드 프로세스 - DBWn • 데이터베이스 라이터(DBWn) 역할 • 메모리에서 변경된 버퍼를 디스크에 기록하는 프로세스 SGA Data Buffer Cache Redo Log Buffer (System Global Area) Shared TEST TABLE Pool A+ B A Background Process 변경된 데이터 저장 UPDATE TEST DBWn SET a=‘b’ WHERE name=“Omaju’
  • 18. Oracle Instance • 오라클 백그라운드 프로세스 - LGWR • 로그 라이터(LGWR) 역할 • 데이터베이스의 승인된 트랜잭션을 온라인 리두 파일에 기록하는 작업을 담당 • 리두 로그 버퍼의 모든 데이터를 활성화된 리두 로그 파일로 저장하며, 다음과 같은 네 가지의 다른 상황이 발생하면 쓰기 작업을 수행 • 트랜잭션의 승인 • 리두 로그 버퍼가 1/3 이상 채워짐 • 리두 로그 버퍼 내의 데이터가 1MB 이상 채워짐 • 매 3초가 경과됨 • 리두 로그 버퍼의 아키텍처 종류 설명 빠른 커밋(Fast Commit) 유저가 특정 작업을 수행하고 커밋(commit)을 수행한 후에는 즉시 데이터 베이스에 저장하여 복구 및 조회를 할 수 있게 하겠다는 뜻 선 로그 기법(Log Ahead) DML(Insert, Update, Delete) 작업을 수행할 경우 실제 데이터에 대해 DML 을 수행하기 전에 데이터들의 변경에 대한 내용을 리두 로그 버퍼에 미리 저 장하며 작업 중 장애가 발생하여도 복구를 수행 할 수 있기 때문에 오라클에 서는 선 로그 기법을 주로 사용 동시 쓰기 동시 쓰기는 커밋시 로그를 기록하는 부분에서 같은 시점에 커밋되는 작업 들에 대해서는 동시에 리두 로그 파일에 기록
  • 19. Oracle Instance • 오라클 백그라운드 프로세스 - LGWR • 로그 라이터(LGWR) 역할 • LGWR 백그라운드 프로세스는 리두 로그 버퍼에 기록된 내용을 리두 로그 파일로 저장 SGA Data Buffer Cache Redo Log Buffer (System Global Area) A -> B Shared Pool C-> D A+ B C+ D Background Process B A -> B C -> B C DBWn LGWR TEST 테이블 리두 로그 파일
  • 20. Oracle Instance • 오라클 백그라운드 프로세스 - CKPT • 체크포인트(CKPT) 역할 • CKPT 프로세스는 모든 컨트롤 파일과 데이터 파일의 헤더를 최근의 체크포인트 정보를 갱신하는 역할 • 데이터 버퍼 캐시의 변경된 데이터 블록을 데이터 파일에 기록 하여 메모리 내의 데이터와 데이터 파일에 저장된 데이터를 일치시키는 일련의 작업 • DBWn(데이터베이스 라이터) : 주기적으로 자신의 버퍼를 디스크에 저장하여 체크포인트를 발생 • CKPT(체크포인트) : 로그 스위치 체크 포인트 발생 이후 데이터베이스 복구작업 • SMON(시스템 모니터) : 데이터베이스 복구를 담당하여, 데이터 파일 내에 마지막으로 기록된 체크포인트 이후 온라인 리두 로그 파일의 모든 항목은 반드시 데이터 파일로 다시 적용 • 매 3초가 경과됨 SGA Data Buffer Cache Redo Log Buffer (System Global Area) Shared Pool 리두 로그 파일 Background Process DBWn CKPT SMON 테이블
  • 21. Oracle Instance • 오라클 백그라운드 프로세스 - ARCn • 기록기(ARCn) 역할 • 만약 디스크에 문제가 발생 된다면 데이터베이스를 복구 할 수 있는 유일한 방법은 백업을 이용하지만 일반 적으로 백업은 월간, 주간, 혹은 매일 질 수도 있으며, 불행하게도 리두 로그 파일은 하루 동안의 트랜잭션을 모두 담기 위한 것이 아니라고 할 수 있기 때문에 이부분을 기록기(Archiver)프로세스의 도움을 받음 • 데이터 베이스가 작동되는 동안 이와 같은 백업 작업을 수행하며, 데이터베이스에 변경이 기록되는 동안 실 행될 수 있으므로, 기록기 실행을 위해 데이터베이스를 중단할 필요가 없음 • 기록기 프로세스는 로그 스위치가 일어나는 바로 이 시점에 리두 로그의 트랜잭션 데이터를 테이프나 네트 워크 파일 파일 시스템과 같은 다른 오프라인 저장 매체로 전송 하여 사용 가능 하며, 로그 라이터는 다음 리두 로그 파일로의 쓰기 작업을 계속 수행 가능
  • 22. References • 초보자를 위한 Oracle 10g – 권순용, 김지한, 황오현 저 • Beginning Oracle Programming – Sean Dilon 외 4인 공저 • http://www.oracle.com/pls/db102/homepage • http://kr.forums.oracle.com/forums/thread.jspa?messageID=1484145 • http://omaju.springnote.com/ - 오마주 스터디 스프링 노트 • http://cafe.daum.net/ocp - 오라클 최고의 전문가 및 스터디 카페