'오라클 구조'에 해당되는 글 3건


저장영역 구조

   

   

  1. 저장영역(@ORACLE_BASE/oradata/orcl)

       

    1. 컨트롤 파일
      1. 데이터베이스 자체에 대한 데이터(물리적 데이터베이스 구조정보)를 포함
      2. 이 파일이 없으면 데이터베이스 내의 데이터에 액세스할 때 데이터 파일을 열 수 없다.
      3. 각 파일들의 위치 주소를 가지고 있다.
      4. 컨트롤 파일의 내용

         

    2. 데이터 파일
      1. 데이터베이스의 유저 또는 응용 프로그램 데이터
      2. 메타 데이터 및 데이터 딕셔너리를 포함(실질적인 데이터를 가지고 있음)

           

    3. 온라인 리두 로그 파일
      1. 데이터베이스 서버가 손상되었지만 해당 데이터 파일은 손실되지 않는 경우 Instance는 이러한 파일 안에 있는 정보를 사용하여 데이터베이스를 Recovery 할 수 있다.(데이터 백업 및 복원)
      2. 데이터베이스의 Instance Recovery를 허용함.

           

  2. 성공적인 데이터베이스 실행에 필요한 추가 파일

       

    1. 파라미터 파일
      1. Instance 시작 시 Instance 구성 방법을 정의하는 데 사용

           

    2. Password 파일
      1. Sysdba, sysoper 및 system이 데이터 베이스에 원격으로 연결하여 관리 작업을 수행

           

    3. 백업파일
      1. 데이터베이스 Recovery에 사용
      2. Media Failure 또는 User Error로 원본 파일이 손생되었거나 삭제되었을 경우 복원

           

    4. 아카이브된 리두 로그 파일
      1. 데이터베이스 Instance에 의해 생성되는 데이터 변경에 대한 기록을 지속적으로 포함함.
      2. 이 파일과 데이터베이스 백업을 사용하면 손실된 데이터 파일을 Recovery할 수 있다.

           

    5. Alert log file, Trace file(@ORACLE_BASE/admin/orcl/bdump, udump)
      1. Alert log file
        1. 데이터베이스의 Alert log에는 메시지와 오류가 시간 순서대로 기록 되어 있다.
          1. All internal errors (ORA-600), block corruption errors (ORA-1578), and deadlock

            errors (ORA-60) that occur

          2. Administrative operations, such as the SQL statements CREATE/ALTER/DROP

            DATABASE/TABLESPACE and the Enterprise Manager or SQL*Plus statements

            STARTUP, SHUTDOWN, ARCHIVE LOG, and RECOVER

          3. Several messages and errors relating to the functions of shared server and

            dispatcher processes

          4. Errors during the automatic refresh of a materialized view
        2. 각 Instance에는 하나의 Alert log file이 있다.
        3. Tail -f Alert log file
      2. Trace file
        1. 각 서버와 백그라운드 프로세스는 연관된 Trace file에 정보를 기록할 수 있다.
        2. 시스템 오류에 대한 정보를 해당 Trace file에 기록.
        3. 예외) job queue processes가 발생할 수 있음.

           

   

<참고문헌>

Oracle Database 11g : Adminstration Workshop

Oracle Database 11g Documentation Library

Oracle Database 10g Documentation Library

원본 위치 <http://www.oracleclub.com>

원본 위치 <http://www.dbguide.net/db.db?cmd=view&boardUid=12906&boardConfigUid=9&boardIdx=49&boardStep=1>

'1. IT Story > DB' 카테고리의 다른 글

Oracle Redo Log  (0) 2012.02.29
Oracle Net  (0) 2012.02.29
Oracle Instance 시작과 종료  (0) 2012.02.29
Oracle Parameter file(spfile/pfile)  (0) 2012.02.29
Oracle Structure 프로세스  (0) 2012.02.29
Oracle Structure 메모리  (0) 2012.02.29
Oracle 11g Install[RHEL 5] 3  (0) 2012.02.27
Oracle 11g Install[RHEL 5] 2  (0) 2012.02.27
블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,


프로세스 구조

  • User Process : 응용프로그램 또는 오라클 도구 코드를 실행하는 User Process
  • 데이터베이스 프로세스 : 오라클 데이터베이스 서버 코드를 실행하는 오라클 데이터베이스 프로세스(서버 프로세스 및 백르라운드 프로세서 포함.)

       

                            

  1. 프로세스
    1. 서버프로세스
      1. Instance에 연결된 User Process의 요청을 처리하기 위한 서버 프로세스를 생성
        1. 응용 프로그램을 통해 발행된 SQL문 구문 분석 및 실행
        2. 디스크의 데이터 파일에서 필요한 데이터 블록을 SGA의 공유 데이터베이스 버퍼로 읽기(SGA에 블록이 이미 표시 되어 있지 않은 경우)
        3. 응용 프로그램이 정보를 처리할 수 있는 방식으로 결과 반환

             

    2. 백그라운드 프로세스
      1. 성능을 최대화하고 많은 유저를 수용하기 위해 다중 처리 오라클 데이터베이스 시스템은 백그라운드 프로세스라는 일부 오라클 데이터베이스 프로세스를 추가로 사용함.

           

        1. DBWn(데이터베이스 기록자 프로세스)-multiblock
          1. 데이터베이스 버퍼 개시의 수정된(dirty) 버퍼를 디스크에 기록.
          2. 다른 처리를 수행하는 동안 비동기적으로 기록
          3. 체크포인트를 향상시키기 위해 주기적으로 기록
          4. Commit -> Redo log buffer -> LGWR -> SCN(system change number)변경 및 할당

               

        2. LGWR(LogWriter 프로세스)
          1. 리두 로그 버퍼를 디스크의 리두 로그 파일에 기록
          2. 기록은 다음과 같은 경우에 실행됨
            1. User Process 가 트랜잭션을 커밋할 때
            2. 리두 로그 버퍼의 1/3이 찾을 때
            3. DBWn 프로세스가 수정된 버퍼를 디스크에 기록하기 전에..

                 

        3. CKPT(채크포인트 프로세스)
          1. 체크포인트 정보를 기록하는 위치
            1. 콘트롤 파일
            2. 각 데이터 파일 헤더

                 

        4. SMON(시스템 모니터 프로세스)
          1. Instance시작 시 Recovery 수행
          2. 사용하지 않는 임시 세그먼트 정리
          3. 윈도우 조각모음과 비슷한 역할..
          4. 위의 내용들이 필요한지를 SMON을 통해 확인하기 위해

               

        5. PMON(프로세스 모니터 프로세스)
          1. User Process가 실패할 경우 프로세스 Recovery수행
            1. 데이터베이스 버퍼 캐시 정리
            2. User Process에서 사용하는 리소스 해제
          2. Idle 세션 타임아웃에 대한 세션 모니터
          3. 리스너에 동적으로 데이터베이스 서비스 등록

               

        6. DECO(복구자 프로세스)
          1. 분산 데이터베이스 구성에 사용
          2. In-Doubt 분산 트랜잭션ㅇ과 관련된 다른 데이터베이스에 자동으로 연결
          3. 모든 In-Doubt 트랜잭션을 자동으로 해결
          4. In-Doubt트랜잭션에 해당하는 모든 행 제거

               

        7. ARCn(아카이버 프로세스)
          1. 로그 스위치가 발생한 후에 리두 로그 파일을 지정된 저장 장치로 복사
          2. 트랜잭션 리두 데이터를 수집하여 대기 대상으로 전송할 수 있다.

               

        8. 기타 프로세스(MMON, MMNL, MMAN, CJQ0, QMNx)

             

    3. 서버 프로세스 Query 처리 과정
      1. 데이터베이스 버퍼 캐시에서 필요한 볼록의 이미지 찾기 -> 이미지가 없다면 서버 프로세스는 데이터 파일에서 블록을 읽기 -> 데이터베이스 버퍼 캐시에 복사본을 배치함 -> 동일한 블록에 대한 차후 요청이 발생하는 경우 이 블록이 이미 메모리에 있으므로 물리적 읽기를 수행할 필요가 없다.

           

  2. 기타
    1. 2Tear
      1. Client -> Oracle DB
    2. 3Tear
      1. Client -> 미들웨어 -> Oracle DB

         

    3. 소프트 파싱 : 구문 분석을 않 할 때..
    4. 하드 파싱 : 구문 분석을 할 때..

         

   

<참고문헌>

Oracle Database 11g : Adminstration Workshop

Oracle Database 11g Documentation Library

Oracle Database 10g Documentation Library

원본 위치 <http://www.oracleclub.com>

원본 위치 <http://www.dbguide.net/db.db?cmd=view&boardUid=12906&boardConfigUid=9&boardIdx=49&boardStep=1>

   

'1. IT Story > DB' 카테고리의 다른 글

Oracle Net  (0) 2012.02.29
Oracle Instance 시작과 종료  (0) 2012.02.29
Oracle Parameter file(spfile/pfile)  (0) 2012.02.29
Oracle Structure 저장 영역 구조  (0) 2012.02.29
Oracle Structure 메모리  (0) 2012.02.29
Oracle 11g Install[RHEL 5] 3  (0) 2012.02.27
Oracle 11g Install[RHEL 5] 2  (0) 2012.02.27
Oracle 11g Install[RHEL 5] 1  (0) 2012.02.27
블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,


메모리 구조

- Instance에는 크게 2가지로 구성되어 있다. 메모리 영역(SGA, PGA)과 프로세스 영역(백그라운드 프로세스)

   

   

  1. Instance
    1. SGA(System Global Area)
  • 단일 오라클 데이터 베이스 Instance의 데이터 및 제어 정보를 포함하는 SGA구성 요소라는 공유 메모리 구조 그룹.

       

       

       

  1. 데이터베이스 버퍼 캐시
    1. 2개의 list로 구성됨(Write List 와 LRU(Least Recently) List)
    2. 데이터베이스 버퍼 캐시의 사이즈 2K~32K(멀티 블록 사이즈, 표준 블록 사이즈, SYSTEM Tablespace, DB_BLOCK_SIZE 파리미터를 수정하여 변경가능)
    3. 파라미터 일 때(DB_2~32K_CACHE_SIZE) 블록과 캐쉬 사이즈 일 때(DB_BLOCK_SIZE=4096, DB_CACHE_SIE=1024M, DB_2K~8K_CACHE_SIE=512M)
    4. 추가적인 Multiple Buffer pools(Keep and Recycle - DB_KEEP_CACHE_SIZE and DB_RECYCLE_CACHE_SIZE 파라미터를 통해 수정가능.), 유지되고 있던 Data와 새롭게 사용되어진 데이터가 존재함
    5. 데이터 파일에서 읽은 데이터 블록의 복사본을 보관하는 SGA부분,
    6. SQL이 들어오게 되면, 디스크영역인 데이터파일로 바로 들어 가지 않고 데이터베이스 버퍼캐시에서 있는 지 없는 지를 확인한 뒤, 해당 SQL문의 값이 있다면 바로 데이터를 가져갈 수 있다. 없다면 디스크의 데이터 파일로 가게 되는데, 이 경우 속도가 느리다.

         

  2. 리두 로그 버퍼
    1. 데이터베이스에 대한 변경 사항 관련 정보가 포함된 SGA의 순환버퍼
    2. Insert, Update, Delete, Create, Alter or Drop 수행으로 변화된 내용의 정보를 Redo entries에 저장한다.
    3. Redo entries -> Redo log buffer -> LGWR -> Redo log file(or 파일 구룹형태)
    4. 초기화 파라미터 LOG_BUFFER redo log buffer size 결정(default setting 512kb 또는 128kb CPU_COUNT 파라미터)
    5. 변경사항의 기록을 통해서 추후에 발생할 수도 있는 데이터 손실이나 분실 시에 복구할 수 있도록 도와 준다. (리두로그버퍼->LGWR->온라인 리두 로그 파일->아카이브된 로그파일)

         

  3. Shared Pool(Shared_Pool_Size)
    1. 라이브러리 캐시
      1. Shared SQL Areas, Private SQL Areas, PL/SQL procedures and packages, and control structures such as locks and library cache handles 를 포함한다.

           

        1. Shared SQL Areas
          1. 주어진 SQL 상태의 실행 계획과 Parse Tree(파스트리: 언어에서 문법의 시작 기호가 어떻게 스트링을 유도하는가를 그림으로 표현하는 것으로 유도 트리라고도 한다.)가 들어 있다.
          2. 새로운 SQL-> 메모리(shared pool) -> Shared SQL area(SQL statements run multiple times), 종종 많은 유저들의 SQL이 실행 될 경우가 있다.
          3. 만약 Shared SQL area에 할당된 공간에 자리가 없다면, 공간이 생길 때 까지 대기,

               

        2. Private SQL Areas
          1. Private SQL은 data such as bind information and runtime memory structures 포함한다.
          2. A cursor is a handle or name for a private SQL area

               

        3. Shared SQL Areas 와 Private SQL Areas의 차이는??

             

      2. 딕셔너리 데이터를 보관하는 메모리의 나머지 한 영역
      3. 공유 SQL영역: SQL문에 대한 구문 분석 트리 및 실행 계획이 포함됨.
      4. SQL문이 들어오기 되면 가장 먼저 이 곳에 들어와 SQL문이 이전에 수행 되었는지를 체크한 한다.

           

    2. 데이터 딕셔너리 캐시 캐시
      1. 데이터베이스, 해당 구조 및 유저에 대한 참조 정보를 포함하는 데이터베이스 테이블 및 뷰 모음
      2. 메모리상의 2가지 특별한 위치로 ACCESS함(data dictionary cache, row cache), library cache

           

    3. Shared Pool에서 메모리 할당 및 재사용
      1. 라이브러리 캐시에 이전에 사용되었던 SQL문이 존재한다면, 서버 프로세스는 세션을 대신하여 Private SQL 영역을 할당하여 해당 SQL문의 재사용(SQL 수행 속도 향상)

           

  4. Large Pool
    1. The database administrator can configure an optional memory area called the large

      pool to provide large memory allocations for:

         

  • Session memory for the shared server and the Oracle XA interface (used where

    transactions interact with more than one database)

  • I/O server processes
  • Oracle backup and restore operations

       

  1. Java Pool
    1. Java pool memory is used in server memory for all session-specific Java code and data

      within the JVM. Java pool memory is used in different ways, depending on what mode

      the Oracle server is running in.

         

  2. Streams Pool

       

  1. PGA(System Global Area)

       

  • 서버 또는 백그라운드 프로세스의 데이터 및 제어 정보를 포함하는 메모리 영역

       

  1. User Process
    1. 사용자가 오라클 Application Program을 실행 시켰을 때 사용되는 프로세스

       

    1. 사용자가 오라클 서버에 접속할 때마다 사용자 프로세스가 생성된다.
    2. 사용자가 실행시킨 SQL문을 서버 프로세스에 전달하고, 그 결과를 서버 프로세스로부터 받는 역할을 수행한다.

       

  2. Server Process
    1. Oracle은 서버프로세스를 생성하여 접속된 사용자 프로세스의 요구 사항을 처리 및 상호작용
    2. 공유 서버 구성에서는 여러 개의 사용자 프로세스가 적은 수의 서버 프로세스를 공유하여 서버 프로세스 수를 최소화하는 동시에 사용 가능한 시스템 자원 활용도를 최대화 한다.
    3. 오라클 서버 프로세스는 사용자로부터 받은 요구사항(SQL문)을 처리 합니다.

    전달받은 SQL문을 Parse, 실행(Execute), 페치(Fetch) 작업을 통해 실행 시키는 역할을 한다.

       

       

       

  • Connection and Sessions
    • Connection 은 유저 프로세스와 오라클 인스턴스 사이의 Communication pathway
    • Sessions 은 유저 프로세스와 오라클 인스턴스가 Connection된 상태를 유지하는 특별한 상태.
    • Multiple Session 가능, 예) 같은 유저아이디로 여러명이 접속할 수 있음.

         

         

         

<참고문헌>

Oracle Database 11g : Adminstration Workshop

Oracle Database 11g Documentation Library

Oracle Database 10g Documentation Library

원본 위치 <http://www.oracleclub.com>

원본 위치 <http://www.dbguide.net/db.db?cmd=view&boardUid=12906&boardConfigUid=9&boardIdx=49&boardStep=1>

   

'1. IT Story > DB' 카테고리의 다른 글

Oracle Instance 시작과 종료  (0) 2012.02.29
Oracle Parameter file(spfile/pfile)  (0) 2012.02.29
Oracle Structure 저장 영역 구조  (0) 2012.02.29
Oracle Structure 프로세스  (0) 2012.02.29
Oracle 11g Install[RHEL 5] 3  (0) 2012.02.27
Oracle 11g Install[RHEL 5] 2  (0) 2012.02.27
Oracle 11g Install[RHEL 5] 1  (0) 2012.02.27
Oracle Engine백업 및 그외..  (0) 2011.09.11
블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,