일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- lombok
- android
- python
- 리눅스
- 인프라
- 파이썬
- write by chatGPT
- GIT
- 자바
- JVM
- write by GPT-4
- 코틀린
- 뉴턴역학
- flet
- 자바네트워크
- 유닉스
- Database
- 시스템
- 역학
- Spring boot
- kotlin
- 자바암호
- Java
- NIO
- 고전역학
- 소프트웨어공학
- chatGPT's answer
- GPT-4's answer
- oracle
- 웹 크롤링
- Today
- Total
Akashic Records
Chapter 1 Oracle Server 본문
PLT 1.1 백그라운드 지원 프로세스
여러 개의 백그라운드 프로세스가 Oracle 인스턴스의 작업을 지원하며 사용자로부터 온 연결 요청을 처리한다. 다음은 인스턴스 지원 프로세스를 보여준다.
[bizsvr]/data/oracle> ps -ef | grep ora oracle 712 1 0 Mar 22 ? 27:33 ora_lgwr_BIZORA9 oracle 710 1 0 Mar 22 ? 2:06 ora_dbw0_BIZORA9 oracle 714 1 0 Mar 22 ? 30:34 ora_ckpt_BIZORA9 oracle 718 1 0 Mar 22 ? 0:00 ora_reco_BIZORA9 oracle 716 1 0 Mar 22 ? 15:21 ora_smon_BIZORA9 oracle 708 1 0 Mar 22 ? 0:01 ora_pmon_BIZORA9 oracle 726 1 0 Mar 22 ? 0:03 ora_d000_BIZORA9 … |
데이터베이스 라이터(DBWR)
Database Buffer의 내용을 데이터 파일에 기록하는 역할을 하며 Database Buffer Cache를 관리하는 Oracle Background 프로세스 이다. Database Buffer Cache에 있는 내용이 수정되면 해당 버퍼는 'Dirty(오염)'된 걸로 표시되는데 이 Dirty Buffer를 Disk에 기록하여 Buffer Cache를 깨끗한 상태로 유지하는 역할을 한다. 기본적으로 DBWR프로세스는 하나만 존재하지만 Oracle 9i에서는 9개까지 생성할 수 있다. LRU 알고리즘에 의해 최근에 사용된 데이터블록을 메모리에 유지한다. 데이터베이스 라이터는 데이터를 데이터베이스에 기록하는 유일한 프로세스이다.
프로세스 모니터(PMON)
사용자 세션이 비정상적으로 종료되고 스스로 정리하지 않을 때 이를 정리하는 역할을 담당한다. PMON은 세션의 중단으로 묶이게 된 자원을 정리하고 해제한다. PMON을 데이터베이스를 배회하다 중단된 사용자 세션을 확인하고 이들을 위하여 자원을 정리하는 첩보원이라고 할 수 있다.
시스템 모니터(SMON)
이것은 다양한 기능을 수행하지만 주기능은 Database 인스턴스가 시작될 때만 수행된다. SMON은 시작 과정에서 모든 데이터베이스 파일이 일고나성을 유지하도록 하며 필요한 경우 복구를 수행한다. 또한 SMON은 이 외에도 다양한 정리 작업을 수행한다. 기타 백그라운드 프로세스는 작업이 수행되어야 할 때 SMON을 깨운다. SMON은 스스로 굉장히 빈번하게 자신이 처리해야 할 적업이 있는지를 검사한다. SMON이 수행한 적업은 모든 Database인스턴스를 원활하게 운영하는 데 필수적이다. 이 프로세스는 규정에 따라 모든 것이 수행되도록 보장하는 관리자 라 할 수 있다.
로그 라이터(LGWR)
데이터베이스 케쉬에 발생하는 모든 변화를 기록하는 기능을 한다. 데이터베이스에서 데이터 작업이 발생하면, 먼저 그 내용이 메모리(SGA)에 저장되고, 그 뒤에 DBWR 프로세스에 의해 영구 저장을 위해 디스크에 데이터 파일로서 저장된다. 하지만 DBWR 프로세스는 데이터베이스 내에서 커밋(Commit)이 발생할 때마다 데이터를 메모리에서 디스크로 저장하는 것이 아니고 주기적(즉, 일정 시간의 경과에 따라)으로 저장하기 때문에, 만약 메모리 오류가 발생할 경우, 커밋(Commit)된 데이터를 상실할 수 있다. 이러한 문제를 보안하기 위해 LGWR 프로세스를 사용하며, 이는 데이터베이스 캐쉬에서 발생한 모든 변화를 기록하는 역할을 한다.
체크포인트(CKPT)
Check Point 작업이 시작되면 이 프로세스는 체크포인트의 세부 내용으로 모든 데이터베이스 데이터 파일을 변경한다. 데이터베이스 라이터가 데이터를 이들 데이터베이스 파일에 기록하는 유일한 프로세스인 반면 CKPT프로세스는 체크포인트가 완료된 후에 데이터베이스 파일 사이의 동기를 맞춘다. 모든 파일이 동기를 유지하도록 보장하는 이 프로세스를 dispatcher라고 부른다.
복구자(RECO)
분산 Transaction을 포함한 장애를 자동으로 해결하는 분산 Option과 함께 사용되는 프로세스 이다. 이 프로세스는 자동으로 분산 트랜잭션에 참여하는 원격 노드에 연결하여 실패에 관련된 모든 노드로부터 적절한 행을 제거함으로써 실패한 트랜잭션을 해결한다. 이 복구자 프로세스는 트랜잭션 해결을 위해 원격 노드에 여러 번 연결을 시도할 수 있으며 연결할 때마다 지연 시간을 늘린다.
아카이브(ARCH)
Online Redo Log File이 꽉 차면 이를 지정된 저장장소에 저장 한다. Redo Log가 Archive Mode에서 운영되고 자동 Archiving기능이 활성화 되어 있을 때만 존재한다.
LRU (least recently used) ; 최근 최소사용 LRU[엘알유]는 운영체계의 페이지 교체 알고리즘 중 하나로서, 기억장치 바깥으로 내보내야 할 페이지를 선정할 때, 최근에 다른 어떤 페이지보다도 적게 사용된(읽혀지거나 기록되거나) 페이지를 고르는 알고리즘이다. 이와 같은 규칙은 캐시에도 적용될 수 있다. 이 규칙은, 일반적으로 가장 오랫동안 액세스되지 않았던 페이지는, 조만 간에도 액세스되지 않을 확률이 가장 크다는 시간적 집약성(temporal locality)에 기반을 두고 있다. |
'오래된글 > DataBase' 카테고리의 다른 글
Chapter 3 Oracle 사용자 관리 - PLT 3.1 사용자 생성 (0) | 2018.04.15 |
---|---|
Chapter 2 Oracle 객체 - PLT 2.1 Table (0) | 2018.04.15 |
Big3 Join (0) | 2018.04.15 |
ANSI/X3/SPARC (0) | 2018.04.15 |
Analytical Function (0) | 2018.04.15 |