2.1 오라클의 역할

- 여러 클라이언트의 데이터를 디스크에 보관하고, 클라이언트의 요청에 따라 데이터를 돌려주는 역할을 함

 

2.2 데이터베이스의 데이터는 모두의 것

- 오라클은 각종 프로그램으로부터 요청을 받아서 데이터는 처리함

- 요청을 받아서 처리하는 입장인 오라클에는 여러 가지의 프로세스들이 있음

- 데이터베이스에는 여러 프로세스와 사용자들이 접근하기 때문에 정합성을 고려해야 함

- 엑셀은 사용자별로 엑셀 파일을 가지고 데이터를 관리하지만, 데이터베이스는 다수의 사용자와 애플리케이션이 데이터를 공유하므로, Lock이라는 개념이 있음

 

2.3 오라클이 여러 개의 프로세스로 구성된 이유

- 다중 처리를 하려고

- 현 사용자가 작업하는 동안 다른 사용자가 가만히 있을 순 없음

- 빠른 CPU와 메모리가 느린 디스크의 동작을 기다리고 있는 것은 매우 비효율적임

- 오라클은 서로 다른 역할의 여러 개의 프로세스를 실행해서 병렬 처리함

 

2.4 서버 프로세스, 백그라운드 프로세스

1) 서버 프로세스 : SQL 처리, 클라이언트에게 서비스를 직접 제공

2) 백그라운드 프로세스 : 서버 프로세스를 지원, 지원 스태프 역할

 - DBWR : 데이터를 디스트에 기록

 - LGWR : 데이터 변경 이력인 로그를 디스크에 기록

 - PMON : 프로세스 감시, 장애 발견시 정리

 - ARCH : 로그 데이터를 아카이브(장기보관을 위해 별도 파일로 보관)

 

2.5 각 프로세스의 역할

1. SQL수신

2. SQL파싱 (어떤 테이블에 어떻게 접근)

3. 데이터 읽기

4. 데이터 기록

5. SQL 결과 회신

6. 로그 기록 (데이터 변경 로그를 디스크에 기록)

7. 각종 정리 (문제 프로세스 재기동, Lock해제 등)

8. 로그 보관 (아카이브)

 

- 서버 프로세스는 SQL문을 처리하고 결과를 돌려주는 일에만 집중하고 , 이 외의 일을 백그라운드 프로세스가 함

 

 

'DATABASE > oracle' 카테고리의 다른 글

Oracle 메모리 (undo, redo, archive)  (0) 2023.06.04
Parallel Processing  (0) 2023.06.04
[Oracle] 9. REDO와 UNDO  (0) 2021.07.23
[Oracle] 3. 캐시와 공유 메모리  (0) 2021.07.12
[Oracle] 1. I/O와 디스크의 관계  (0) 2021.07.12