일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- oracle installation
- 오지지
- 디비투
- OracleGoldenGate
- oracle recovery
- 오라클구조
- Database
- SILENTMODE
- 오라클설치
- Opatch
- 티베로
- ActiveDataGuard
- 데이터가드
- ORACLE19C
- goldengate
- DataGuard
- 데이터베이스
- Oracle 19c
- linux
- SSH
- adg
- 오라클
- 19c
- diskgroup
- Oracle
- ogg
- 사일런트모드
- Installation
- oracle goldengate
- 오라클아키텍쳐
- Today
- Total
DoubleDBDeep
[ORACLE] 3. Oracle Process 본문
< 오라클 프로세스 구조 >
User Process
오라클 데이터베이스에 연결하는 응용 프로그램(Orange, Toad, Sqldeveloper 등)이나 SQL*Plus 등의 도구
Database Process
- Server Process : 오라클 인스턴스에 연결되며 User Process의 명령을 수행
- Background Process : 오라클 인스턴스가 시작될 때 시작되며 데이터베이스 시작, 디스크에 블록 쓰기, 온라인 리두 로그 유지, 중단된 프로세스 정리, AWR 유지 등
Daemon / 응용 프로그램 Process
네트워킹 리스너 및 Grid Infrastructure Damon (ohas, ocssd, diskmon, orarootagent, oraagent, cssdagent)
1. 서버 프로세스
Client Session에서 데이터베이스로 보내는 SQL문을 받아 대신 일을 처리하는 프로세스
- 응용 프로그램을 통해 발행된 SQL문 구문분석 및 실행
- 디스크의 데이터 파일에서 필요한 데이터 블록을 SGA의 공유 데이터베이스 버퍼로 읽기 (메모리에 없는 경우)
- 응용 프로그램이 정보를 처리할 수 있는 방식으로 결과 반환
Dedicated server <-> Shared server 정리 !!
UGA가 PGA에 있냐 - Dedicataed Server / SGA(shared pool)에 있냐 - Shared Server
UGA가 뭔데
-> 사용자 session이랑 관련된 memory로 Sort Area (SQL 작업공간), 접속 세션 정보,
커서 상태 (SQL Parsing 정보 주소값 저장 - 실행 SQL문의 위치) 등의 정보를 가지는 공간
그럼 Shared Server의 PGA는 Stack Space(SQL문의 Bind 변수를 담는 공간)만 남음
ㅇㅋ?
ㅇㅋ
~~ 요약 ~~
시스템 과부하나 특정 기능을 위해 Shared server를 반 드 시 사용해야 하는 필요가 없는 한
dedicated server를 사용하게 될 것임. (설정도 단순하고 튜닝하기도 쉬움)
Shared server를 이용해 구축한다면.. 많은 테스트가 필요할 것!
2. 백그라운드 프로세스
오라클 인스턴스 = SGA + Background Processes
백그라운드 프로세스는 데이터베이스를 지속적으로 수행하는데 필요한 유지 업무를 담당한다.
- 특화된 백그라운드 프로세스
- 그 외 작업을 수행하는 프로세스 (예 : 유틸리티 프로세스)
>> 조회
(가능한) 모든 오라클 백그라운드 프로세스
select *
from v$bgprocess
;
특화된 백그라운드 프로세스 (시스템에서 실행 중인 프로세스)
select paddr, name, description
from v$bgprocess
where paddr <> '00'
;
리눅스에서 조회
$ ps -aef | grep ora_...._$ORACLE_SID
--> 프로세스 명명 규칙 : ora_프로세스 실제 이름 4자리 문자 _$ORACLE_SID
특화된 백그라운드 프로세스
1. PMON (Process Monitor) : 프로세스 모니터
1) 비정상적으로 커넥션이 종료된 후 정리하는 일을 담당. (자원 해제)
-> 커밋되지 않은 작업에 대해 롤백 수행, 락 해제, 실패한 프로세스에 할당된 SGA 자원 해제
2) 다른 오라클 백그라운드 프로세스 모니터링 및 필요 시 해당 프로세스 재시작 or 종료
3) 오라클 TNS 리스너에 등록
-> 인스턴스 구동 시 등록된 포트번호로 접속 시도
2. SMON (System Monitoe) : 시스템 모니터
1) 시스템 레벨의 모든 작업을 수행
2) 데이터베이스를 위한 garbage collector 역할 수행
-> temporary 공간 정리 : 예) 인덱스 생성 과정에 만들어진 extent는 TEMPORARY로 표시되는데, CREATE INDEX 세션이 갑자기 중단된 경우 SMON이 해당 익스텐트를 정리하는 일을 한다. 다른 작업이 생성한 임시 익스텐트 또한 처리
-> 빈 공간 합침 : 테이블 스페이스에서 빈 익스텐트와 서로 인접한 익스텐트를 가져와 하나의 큰 빈 익스텐트로 함침
-> 가용하지 않은 파일을 대상으로 활동 중인 트랜잭션 복구 : 예) 데이터베이스 구동 시 데이터파일을 사용할 수 없어서 실패된 트랜잭션을 복구함
-> RAC에서 실패한 노드의 인스턴스 복구 : 실패한 인스턴스의 리두 로그 파일을 열어 모든 데이터에 대한 복구 작업 수행
-> OBJ$ 정리 : OBJ$ 테이블에서 더이상 필요하지 않은 로우를 제거
-> 언두 세그먼트 줄이기 : 자동으로 언두 세그먼트의 크기를 최적으로 줄이는 작업 수행
-> 언두 세그먼트 오프라인
3. RECO (Distributed Database Recovery) : 분산 데이터베이스 복구
1) 분산 데이터베이스 구성에 사용 : 분산 트랜잭션과 관련된 실패를 자동으로 해결하는 데이터베이스에 사용
2) In-Doubt 분산 트랜잭션과 관련된 다른 데이터베이스에 자동 연결 및 모든 트랜잭션 해결, 행 제거
4. CKPT (Checkpoint) : 체크포인트 프로세스
* 체크포인트 : 데이터베이스의 redo thread에 SCN을 정의하는 데이터구조로 컨트롤파일 및 데이터파일 헤더에 기록되는 Recovery 필수 요소
체크포인트 발생 시 모든 데이터파일의 헤더를 갱신하여 체크포인트의 세부 사항 기록
--> 체크포인트 작업은 DBWn이 직접 수행하고 CKPT는 파일 헤더를 수정하여 도와줄 뿐.
5. DBWn (Database Block Writer) : 데이터베이스 블록 기록자
메모리(SGA)에 있는 Database Buffer Cache의 내용을 Datafile에 기록한다.
Buffer는 수정되면 Dirty로 표시되는데, 이러한 dirty block을 디스크로 내려쓰거나, 체크포인트를 전진시킨다.
* 만약 블록을 디스크에 기록하는 속도가 Buffer를 비우는 속도를 따라가지 못하면 Free Buffer Waits 대기 횟수와 Write Complete Waits 대기 시간이 증가함
6. LGWR (log Writer) : 로그 기록자
메모리(SGA)에 있는 Redo Log Buffer의 내용을 Redo Log File(disk)에 기록한다.
이 3중 1개라도 만족 시 기록됨
1) 매 3초마다
2) 트랜잭션이 커밋될 때
3) Redo Log Buffer가 1/3 채워졌거나 Buffer에 저장된 데이터가 1MB 이상일 때
4) DBWn이 디스크에 내려쓰기 전 (필요 시)
7. ARCn (archive) : 아카이브 프로세스
LGWR이 온라인 리두 로그 파일을 채웠을 때, 그 파일을 다른 위치로 복제하는 일을 담당 --> 미디어 복구 시 사용
즉, Redo Log File은 인스턴스가 비정상 종료됐을 때 데이터 파일을 복구하기 위해 사용될 수 있고,
Archived Redo Log File은 하드디스크에 장애가 발생했을 때 데이터 파일을 복구하기 위해 사용될 수 있다.
// 아카이브로그 모드 사용 확인
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Mar 7 01:47:28 2023
Version 19.17.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.17.0.0.0
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 56
Next log sequence to archive 56
Current log sequence 58
등등 외에도
RAC 환경에서만 사용되는 백그라운드 프로세스들 및 다양한 백그라운드 프로세스들이 존재함
'ORACLE > Architecture' 카테고리의 다른 글
[ORACLE] Cursor (0) | 2024.04.17 |
---|---|
[ORACLE] SQL Parsing (0) | 2024.04.17 |
[ORACLE] 2. Oracle Memory 구조 (0) | 2023.03.06 |
[ORACLE] 1. Oracle Server Architecture (0) | 2023.03.03 |