Search results for 'Oracle_DB_Unix admin/(1)초보자를 위한 Oracle 10g'

Chapter 4 오라클 프로세스

2015. 4. 8. 23:32

Chapter 4 오라클 프로세스

<연습문제>
1. 오라클의 필수 백그라운드 프로세스란 무엇이며 5가지의 필수 백그라운드 프로세스를 기술하시오.

오라클이 DB를 작동시키기 위해 필요한 프로세스.
DBWR(Database Writer) : 데이터 버퍼 캐쉬 -> 데이터 파일
LGWR(Log Writer) : 로그 버퍼 캐쉬 -> 리두 로그 파일
PMON(Process Monitor) : PGA 다운 시 자원 회수
SMON(System Monitor) : SGA 다운 시 DB 재시작 및 데이터 무결성 보장
CHKT(Check Point) : CKPT: 데이터 버퍼 캐쉬의 변경된 데이터 블록을 데이터 파일에 기록하여 메모리 내의 데이터와 데이터 파일에 저장된 데이터를 일치시키는 일련의 작업(DB의 정합성 유지목적에서 수행)

2. DBWR, LGWR 백그라운드 프로세스의 지연 쓰기와 빠른 커밋에 대해 기술하시오.

DBWR - 지연쓰기 : 매 트랜잭션 및 커밋에 대해 즉각 데이터 파일에 반영하게 될 경우 DISK I/O가 과도하게 발생하여 DB성능이 저하될 수 있으므로, 지연쓰기 기능을 활용한다. 실제 데이터 파일에 트랜잭션을 반영하는 것은 일정 조건을 만족할 때 진행하며, Oracle DBMS의 경우 데이터 블록 단위로 I/O를 하는데, 이것은 동일 데이터 블록에 있는 데이터들의 변경을 한번에 기록할 수 있게 해서 DISK I/O를 줄이는데 도움을 준다.
한편, 그럼에도 불구하고 트랜잭션 커밋 시 다른 유저가 변경된 내용을 읽을 수 있어야 하므로, 변경 내용을 데이터 버퍼 캐쉬에 기록해서 메모리에서 요청을 처리할 수 있도록 한다. 하지만 메모리에만 기록을 했을 시 프로세스 재 가동 등에 의해 변경내용이 사라질 수 있으므로, 이 내용을 리두 로그 파일에 기록한다. 로그 버퍼 캐쉬에 변경된 내용이 저장되었다가 커밋 발생 시 이전까지 발생했던 트랜잭션을 모아서 LGWR프로세스가 리두 로그 파일에 저장하게 되는데, 이것을 빠른 커밋이라고 한다.

3. LGWR 백그라운드 프로세스의 동시 쓰기에 대해 기술하시오.

로그 버퍼 캐쉬에 저장된 트랜잭션들을 한꺼번에 리두 로그 파일에 옮겨 쓰는 것을 말한다. 특정 조건이 만족될 시 LGWR 프로세스는 메모리의 변경 내역을 디스크(리두 로그 파일)에 저장한다.

4. SMON 백그라운드 프로세스의 4가지 역할을 기술하시오.

- 인스턴스 복구 시행 : 데이터베이스의 비정상 종료시 메모리에 저장되었던 커밋 트랜잭션을 복구. 리두 로그 파일 활용

- 데이터 블록의 연속된 공간 통합 : 데이터 파일의 구분선 위치를 변경함으로써 효율적으로 스토리지 공간을 활용할 수 있게 해줌. 데이터 블록의 크기가 동일 할 경우 수행할 필요가 없다. 관련 파라미터를 조작함으로써 수행 주기를 조정할 수 있다. 

- 임시 세그먼트 제거 : DB 종료시 사용했던 임시 세그먼트를 제거한다.

- OPTIMAL 크기 유지 : 롤백 세그먼트의 크기를 최적으로 유지하기 위해 12시간에 한번씩 롤백 세그먼트를 축소하는 작업을 진행한다.

5. CKPT 백그라운드 프로세스가 본연의 작업을 수행하게 되는 경우를 기술하시오.

- 로그 스위치 (리두 로그 파일 교체) 발생 시
- 3초마다 발생
- 테이블스페이스가 오프라인으로 변경시
- 데이터베이스가 정상 종료 될 시
- 수동 조작 : ALTER SYSTEM CHECKPOINT 명령 수행
- 자동 실행 : FAST_START_MTTR_TARGET 파라미터에서 설정됨.

6. 공유 서버 환경에서 사용되는 2개의 백그라운드 프로세스를 기술하시오.

공유 서버 환경 (MTS): 하나의 서버 프로세스를 여러 개의 유저 프로세스가 공유하여 사용하는 방식 (1:N)
Snnn과 Dnnn

7. 온라인 백업을 수행하기 위해서 필요한 백그라운드 프로세스를 기술하시오.

??? ARCH???

8. 병렬 프로세싱을 수행하면 기동하는 백그라운드 프로세스를 기술하시오.

Pnnn (Parallel Query Slaves)

9. 오라클 10g의 새로운 백그라운드 프로세스인 MMAN 백그라운드 프로세스와 PVWR 백그라운드 프로세스의 역할을 기술하시오.

MMAN(Memory Manager) : 메모리에서 실행되는 SQL문 등을 저장하여 AWR에 보내는 프로세스 (자가 진단 기능)--> MMON(Memory Monitor)에 대한 설명이며, MMAN은 공유 메모리에 대한 동적 관리 프로세스이다.

PVWR(플래시백) : 10g의 새로운 복구 기능인 플래시백을 사용 가능.

곰돌곰둘 Oracle_DB_Unix admin/(1)초보자를 위한 Oracle 10g

Chapter3 - Oracle 메모리 구조

2015. 4. 5. 19:13

초보자를 위한 Oracle 10g


Chapter3 - Oracle 메모리 구조


- 2개의 메모리 종류

SGA(System Global Area) - 모든 사용자가 공유 가능하여 사용

PGA(Program Global Area) - 사용자마다 공유하지 않고 개별적으로 사용


(1)PGA

- 정의: 각각의 서버 프로세스가 독자적으로 사용하는 오라클 메모리 영역으로, 데이터베이스에 접속하는 모든 유저에게 할당된다.

- 유저 프로세스 <-> 서버 프로세스 <-> PGA

- PGA의 구조

1. 정렬 공간(Sort Area)

Order By 또는 Group By 등의 정렬을 수행하기 위한 공간

*메모리 정렬 불가 시 디스크 이용


2. 세션 정보(Session Information)

유저 프로세스의 세션 정보를 저장


3. 커서 상태 정보(Cursor State)

해당 SQL의 파싱(Parsing)정보가 저장되어 있는 주소(Cursor)를 저장


4. 변수 저장 공간(Stack Space)

바인드 변수(Bind Variable) 사용 시 해당 바인드 변수를 저장


- PGA의 관리 --> 파라미터 통해서 관리


1. WORKAREA_SIZE_POLICY

MANUAL 또는 AUTO로 설정 가능 (10g는 Default= AUTO)

 MANUAL --> SORT_AREA_SIZE 파라미터로 정렬 공간 설정됨

 AUTO --> PGA_AGGREGATE_TARGET 파라미터로 전체 PGA 크기 설정됨


2. SORT_AREA_SIZE

정렬 공간에 대한 크기를 설정하는 파라미터


3. PGA_AGGREGATE_TARGET

모든 세션의 PGA 크기의 합을 설정하는 파라미터 (9i부터 사용 가능)

--> 자동 PGA 조정 기능


* 관리Tip: 평소 접속하는 세션 수 및 각 세션의 PGA 사용량 크기를 파악하여 적절한 값 설정이 필요


PGA 크기 확인 --> V$PROCESS 데이터 딕셔너리 참조

- PGA_USED_MEM - 현재 프로세스가 사용중인 PGA 크기

- PGA_ALLOC_MEM - 프로세스에 할당된 PGA 크기

- PGA_MAX_MEM - 프로세스가 사용한 최대 PGA 크기

곰돌곰둘 Oracle_DB_Unix admin/(1)초보자를 위한 Oracle 10g