Oracle 데이터베이스의 런타임 환경
각각의 Oracle 데이터베이스는 하나 이상의 인스턴스를 가질 수 있음.
'메모리 + 백그라운드 프로세스' 구성
데이터베이스에 연결된 사용자와 응용 프로그램 요청을 처리하고 데이터를 캐시하며 SQL 문을 실행하는 역할
1. SGA (System Global Area)
- 인스턴스의 메모리 구조 중 하나로, 모든 사용자 및 프로세스에 대한 공유 메모리 영역입니다. SGA에는 여러 세부 구성 요소가 있음
- 데이터 캐시, 리두 로그 버퍼, 공유 SQL 영역 및 기타 관리 정보를 포함
2. PGA (Process Global Area)
- 각 사용자 세션 또는 서버 프로세스가 사용하는 개별 메모리 영역.
- PGA는 사용자의 세션 정보, 정렬 및 해시 연산에 필요한 작업 공간 등을 포함
3. 백그라운드 프로세스 (Background Processes)
- 인스턴스는 여러 백그라운드 프로세스를 실행하여 다양한 작업을 수행
- 몇 가지 중요한 백그라운드 프로세스에 사용자 연결 관리, 리두 로그 관리, 체크포인트 프로세스, 백그라운드 SQL 프로세스 등이 포함됩니다.
4. 데이터베이스 버퍼 캐시 (Database Buffer Cache)
- SGA의 일부, 디스크에서 읽은 데이터 블록을 캐시에 저장하여 빠르게 재사용할 수 있도록 하는 메모리 영역
- 반복적인 디스크 I/O를 최소화하고 데이터 액세스 성능을 향상
5. 리두 로그 버퍼 (Redo Log Buffer)
- SGA의 일부로, 트랜잭션 변경 사항을 임시로 저장하는 메모리 영역.
- 리두 로그 버퍼에 저장된 변경 내용은 리두 로그 파일에 주기적으로 기록, 장애 시 데이터베이스를 복구하는 데 사용
6. SGA 프로세스
- SGA를 관리하는 일련의 백그라운드 프로세스, 데이터 캐시의 관리, 리두 로그 버퍼의 관리 등을 담당
7. 인스턴스 레벨의 매개변수 (Instance Parameters)
- 인스턴스 동작을 제어하는 여러 매개변수를 조정하여 인스턴스의 동작을 최적화
8. PGA 프로세스
- PGA를 관리하는 프로세스, 사용자 세션 및 서버 프로세스에서 필요한 메모리를 동적으로 할당 및 해제
9. 인스턴스 관리자 (Instance Manager)
- 다수의 인스턴스를 관리. 인스턴스 시작 및 종료
10. 세션 관리
- 사용자 및 응용 프로그램이 데이터베이스에 연결되고 작업하는 동안의 세션 관리