2024. 7. 9. 11:52ㆍDBMS/ORACLE Admin
오라클 서버 구성요소 중 메모리 영역을 instance라 하고 인스턴스가 시작되어야 DB에 접근 가능하다. Orace Server를 가동하면 먼저 인스턴스가 시작되고 DB가 오픈되며 각 DB마다 인스턴스와 1:1 관계로 구성되기 때문에 인스턴스가 다수의 DB에 의해 공유될 수 없다.
인스턴스의 구성은 메모리 구조와 백그라운드 프로세스로 메모리 구조에는 공유 메모리 영역(Shared Global Area, SGA)와 개별 서버 프로세스마다 할당되는 프로세스 글로벌 영역(Program Global Area, PGA)이 포함된다. 백그라운드 프로세스에는 DBWR(Database Writer), LGWR(Log Writer), SMON(System Monitor), PMON(Process Monitor) 등 여러 중요한 프로세스들이 포함된다.
- 데이터베이스 데이터 파일(data files), 컨트롤 파일(control files), 리두 로그 파일(redo log files) 등으로 구성되며 물리적인 디스크에 저장된 데이터 집합을 의미한다.
단일 서버에 다수의 오라클 서버를 구축하는 경우 SID 라는 인스턴스 식별자를 가지고 구별한다.
작동 방식
- 인스턴스 시작 (Instance Startup):
- 오라클 서버를 가동하면 먼저 인스턴스가 시작된다. SGA를 할당하고 백그라운드 프로세스를 시작하는 단계이며 인스턴스가 시작되면 데이터베이스에 접근할 준비가 된다.
1. Total System Global Area (TSGA):
- 총 SGA 크기를 나타낸다.
- 예시에서는 536870912 bytes (약 512MB)로 설정되어 있다.
2. Fixed Size:
- SGA의 고정 크기 부분이며 백그라운드 프로세스에 할당된 공간이다.
- Oracle 인스턴스 시작 시 고정된 크기로 할당되는 메모리로, 기본적인 Oracle 운영에 필요한 구조체를 포함한다.
3. Variable Size:
- 동적으로 할당되는 메모리 영역이다.
- 이 영역에는 여러 데이터 캐시, 공유 풀(Shared Pool), 대규모 풀(Large Pool), 자바 풀(Java Pool) 등이 포함된다.
4. Database Buffers:
- 데이터베이스 버퍼 캐시 크기이다.
- 데이터베이스 버퍼 캐시는 디스크에서 읽은 데이터 블록을 메모리에 저장하여 빠르게 액세스할 수 있도록 한다.
5. Redo Buffers:
- 리두 로그 버퍼 크기이다.
- 리두 로그 버퍼는 트랜잭션 로그 정보를 일시적으로 저장하여 데이터 변경 내역을 기록하고, 장애 복구 시 사용된다.
SGA 관련 초기화 파라미터
각 파라미터는 SGA와 전체 인스턴스 메모리 관리를 담당하며, 이를 통해 메모리 사용을 효율적으로 조절할 수 있다.
1. memory_max_target
인스턴스에 사용할 수 있는 메모리의 최대 크기를 설정하여 Oracle 인스턴스가 사용할 수 있는 전체 메모리의 상한선을 정의함으로써 인스턴스의 메모리 사용을 제한하여 시스템 리소스의 과도한 사용을 방지한다.
ALTER SYSTEM SET memory_max_target = 2G SCOPE = SPFILE;
2. memory_target
Oracle이 자동 메모리 관리를 사용할 때, 이 값에 따라 SGA와 PGA 사이의 메모리 할당을 자동으로 관리하여 성능을 최적화한다.
ALTER SYSTEM SET memory_target = 1G SCOPE = BOTH;
**** memory_target 값은 memory_max_target 값보다 작아야 한다.
3. sga_max_size
SGA에 사용할 수 있는 최대 메모리 크기를 설정한다.
ALTER SYSTEM SET sga_max_size = 1G SCOPE = SPFILE;
4. sga_target
SGA의 목표 크기를 설정한다. SGA 내의 여러 메모리 풀 간에 메모리를 동적으로 할당하여 성능을 최적화한다.
ALTER SYSTEM SET sga_target = 512M SCOPE = BOTH;
****** sga_target 값은 sga_max_size 값보다 작아야 한다.
- 데이터베이스 오픈 (Database Open):
- 인스턴스가 시작된 후, 데이터베이스를 오픈하여 사용자와 애플리케이션이 데이터베이스에 접속하고 데이터를 조회하거나 변경할 수 있게 된다.
인스턴스와 데이터베이스 관계
- 1:1 관계:
- 각 데이터베이스는 하나의 인스턴스에 의해 관리된다. 하나의 인스턴스가 다수의 데이터베이스를 공유할 수 없다.
'DBMS > ORACLE Admin' 카테고리의 다른 글
Oracle Session (0) | 2024.07.10 |
---|---|
Library cache (0) | 2024.07.10 |
FLASHBACK (0) | 2024.07.04 |
tablespace 장애 offline checkpoint (0) | 2024.07.01 |
tablespace 용량 문제 관리 - autoextend (0) | 2024.07.01 |