시작점

  • 데이터베이스 시스템 문제를 스스로 해결할 수 있도록 오라클 메커니즘을 충분히 설명한다.
  • 문제 발생을 인지하기 위해 이해해야 할 오라클의 핵심 메커니즘은 몇개 안되며, 이 책은 그것을 반복적으로 점차 상세하게 설명 한다.

오라클 주요 프로세스들

  • 오라클 데이터베이스 프로세스 다이어그램
  • 두 가지 파일
구분데이터 파일리두 로그 파일
내용실제 데이터데이터 파일에 발생된 모든 변경 사항
I/O 방식RandomSequential
I/O 크기8K(블록 크기)512B(최소 유닛 크기)
목적테이블스페이스ONLINE/ARCHIVED 리두 로그
  • 필수 테이블스페이스
이름설명
SYSTEM데이터베이스를 설명하는 메타데이터(DATA DICTIONARY) 저장
SYSAUX내부/유지 관리용 패키지에 의해 생성된 다양한 데이터 저장, Oracle 10g 에서 소개 됨
UNDOOracle 9i 에서 소개 됨
TEMPOracle 8 에서 소개 됨
  • 데이터베이스 : 데이터 파일 집합
  • 인스턴스 : 프로세스(스레드) 와 SGA 의 조합
  • RAC는 동일한 데이터베이스를 공유하는 독립된 인스턴스를 가진 다수의 장비로 구성
  • SGA(System Global Area)
    • 데이터 캐시 : 데이터 블록들의 일부 복사본을 보유
    • 로그 버퍼 : 로그 파일로 기록될 정보를 위해 순환적인 방식으로 사용되는 작은 영역
    • 라이브러리 캐시 : SQL문, PL/SQL블록 정보 보유
    • SCN(System Change Number) : 인스턴스 활동성을 조정하는 Clock
      • SGA 를 액세스 하는 모든 프로세스는 SCN 읽기/ 수정 가능
        1. 트랜잭션 시작 시 현재 값 읽기(kcmgss - Get Snapshopt SCN)
        2. 트랜잭션 커밋 시 현재 값 증가(kcmgas - Get and Advance SCN)
  • 프로세스
    • LGWR (Log Writer) : [로그 버퍼] → [로그 파일] 정보 복사 프로세스 (1개)
    • DBWR (Database Writer) : [데이터 캐시] → [데이터 파일] 정보 복사 프로세스 (1개 이상)
    • 서버 프로세스 : SGA 조작, 데이터 파일 읽음
      • DEDICATED 서버 프로세스 : 대부분 시스템 선택
      • SHARED 서버 프로세스 : 일부 시스템에서 OLTP 용으로 선택

동시성 관점에서의 오라클

오라클 동작 원리

사용자 프로그램은 SQL(PL/SQL)문을 서버 프로세스에 전송한다.
각 문장은 파싱 단계를 거친 후에 실행된다.
서버 프로세스는 읽기 일관성을 가지고, 정확한 데이터를 획득/수정해야 한다.
인스턴스는 장애로부터 데이터베이스를 보호.

  • 위의 동작은 멀티 유저 시스템에서 발생 하므로 아래 내용 고려 필요
    • 효과적인 데이터 엑세스, 변경 방법?
    • 데이터베이스 보호 방법?
    • 다른 사용자의 간섭 최소화?
    • 문제 발생시 원복 방법?