Oracel Recovery Structures and Processes
작성자 관리자 작성시간 2003-07-31 16:39:07
 

1. Basic Oracle Architecture

  1) Oracle Instance
      ; SGA(System Global Area) + Backgroud Process(DBWR,LGWR,SMON,PMON,CKPT)
     
  2) Memory Structures
 
      - Data buffer cache : data file 로 부터 읽어진 내용을 저장하는 memory 공간.
      - Log buffer : redo log file에 기록되기 전의 data 저장 공간.
      - Large pool : UGA 대용으로 사용, RMAN 사용시 I/O buffer로 사용.
      - Shared pool : 현재까지 사용된 SQL 문장을 다른 user도 사용가능하게 shared 한다.
     
  3) Backgroud Processes
 
      - Database wirter(DBWR) : data buffer cache로 부터 data file에 dirty buffer를 기록한다.
      - Log writer(LGWR) : log buffer로 부터 redo log file에 data를 기록한다.
      - System monitor(SMON) : instance recovery를 자동으로 수행한다.
      - Process monitor(PMON) : 비정상적으로 종료된 user process에 의해 생성된 server process를
                                clean한다.
      - Checkpoint(CKPT) : 현재 redo log와 checkpoint 번호로 data file과 control file의
                          header를 동기화한다.
      - Archiver(ARCH) : redo log 를 backup 한다.
 
  4) User Process
      ; SQL*Plus, svrmgr, forms, reports, Enterprise Manager 등을 실행 시켰을때 생성된다.
 
  5) Server Process
      ; User process가 던진 질의에 대한 응답을 해준다.
     
  6) Oracle Database
 
      - Data files : data 물리적 저장 공간. binary file
      - Redo logs : recovery를 위한 저장공간. binary file
      - Control files : database의 물리적 구조 저장 공간. binary file
      - Parameter file : instance config를 할 수 있는 file. text file
      - Password file : user가 database를 start, stop, recover 할 수 있는 정보를 갖고 있는 공간.
                        binary file
      - Archive logs : redo log file 의 backup file. binary file
 
  7) Dynamic Views
 
      - V$SGA : shared pool, log buffer, data buffer cache 에 대한 instance size 정보
      - V$INSTANCE : instance mode, instance name, startup time, host name 등의 instance 에
                    대한 정보
      - V$PROCESS : instance에 의해 생성된 background 와 server process 정보
      - V$DATABASE : database 에대한 정보.(database name, database identifier, creation date,
        control file creation date 와 time, last database checkpoint...)
      - V$DATAFILE : data file 의 location 과 name 에 대한 정보.
     
2. ARCH process
  ; log가 switch 되었을때 log를 다른곳에 copy하는 일을 한다.
 
  - ARCH process와 ARCHIVE_LOG_MODE가 조화를 이룰때 적절한 사용법이다.
  - LOG_ARCHIVER_DEST parameter : copy할때 디렉토리 위치 지정.

3. CKPT process
  ; 현재 redo log와 checkpoint 번호로 data file과 control file의 header를 동기화한다.
 
  * Checkpoint는 언제 발생하나?
    - log switch 시
    - shutdown abort를 제외한 shutdown 시
    - ALTER SYSTEM CHECKPOINT command를 DBA가 날렸을 때
    - backup 이 실행될 때
    - LOG_CHECKPOINT_TIMEOUT parameter에서 설정한 값이 수행될 때.
    - LOG_CHECKPOINT_INTERVAL parameter에서 설정한 값이 수행될 때.

4. Data files
  ; system과 user data를 저장하고 있는 file.
    commit 된 data를 갖고 있지만, uncommit된 data 도 갖고 있을 수 있다.
   
  * uncommit 된 정보를 저장하는 예
    update data를 commit 하지 않고 장시간 wait상태에 있으면, 다른 user들이 계속 update를
    하고 있기 때문에 buffer가 밀려서 결국에는 data file에 쓰게된다.
    (이때, lock 정보를 갖고 저장된다.)
   
5. Configuring Tablespaces
  ; tablespace는 2개 이상의 data file을 갖는다.
 
  - SYSTEM : system 과 user data가 같은 tablespace를 갖고 있다면 backup과 recovery하기가 더
              복잡해진다.
  - TEMPORARY : sort정보를 갖고 있다. 복구시 recovery하는 것보다, create하는게 더 좋다.
  - ROLLBACK SEGMENTS
  - READ ONLY DATA : backuup 시간을 줄일 수 있다.
  - HIGHLY VOLATILE DATA : recover 시간을 줄일 수 있다.
  - INDEX DATA : recovery하는 것보다, create하는게 더 좋다.
 
6. Multiplexed Redo Log Files
  ; log file 을 동시에 여러개에 기록하기 때문에 file 하나가 깨져도 정상적으로 작동된다.
 
  * Dynamic Views
    - V$LOG : group no, log sequence no, group size, mirror갯수, status(CURRENT or INACTIVE),
              ckpt change no..
    - V$LOGFILE : name, status(STALE or INVALID), log file member
    - V$LOG_HISTORY : control file의 log history 정보
   
7. Control file 속성

  - 모든 database file 과 log file은 id를 필요로 한다.
  - database name을 저장한다.
  - checkpoint 와 log sequence 정보를 갖고 있다.
  - 2개 이상의 control file은 각각 다른 disk에 저장하는게 좋다.
  - database의 Timestamp를 저장한다.
  - Recovery Manager(RMAN) 사용시 backup 정보를 갖고 있다.


목록 | 입력 | 수정 | 답변 | 삭제