-
CH 5-1: 인스턴스 & 인스턴스 관리 개요DB 스터디/2 Day DBA 2026. 2. 27. 16:43
Ch 5. Managing the Oracle Instance (오라클 인스턴스 관리)
인스턴스 개요
오라클 DB: 데이터베이스와 인스턴스로 구성
- 데이터베이스: 사용자 데이터와 메타데이터를 저장하는 디스크 파일 집합
- 메타데이터: 데이터에 대한 데이터. DB의 구조적, 구성적, 제어 정보 포함
- 인스턴스: 백그라운드 프로세스와 공유 메모리(SGA)의 집합
- SID(시스템 ID): 인스턴스의 ID(식별자)
- 로컬 연결: OS 환경 변수 ORACLE_SID와 ORACLE_HOME 설정하여 인스턴스 지정
- 원격 연결: 네트워크 주소와 DB 서비스 이름을 지정하여 인스턴스 식별
초기화 매개변수 (Initialization Parameters)
초기화 매개변수(initialization parameters): 인스턴스의 환경과 동작을 제어하는 설정값
서버 매개변수 파일(Server Parameter File, SPFILE)
- SPFILE: 데이터베이스가 읽고 쓸 수 있는 바이너리 서버 파라미터 파일
- 직접 파일 수정 불가, 명령어로 수정 가능
- 변경 사항은 데이터베이스 종료 및 재시작 후에도 유지 (SCOPE에 따라 달라짐)
텍스트 초기화 매개변수 파일(Text Initialization Parameter File, PFILE)
- PFILE: 텍스트 파일로 직접 수정 가능한 서버 파라미터 파일
- 텍스트 편집기 사용해 수정 가능
- 변경 사항은 데이터베이스 인스턴스 재시작해야 적용
백그라운드 프로세스 (Background Processes)
백그라운드 프로세스: 인스턴스에서 메모리 관리 등을 자동으로 수행하는 지원 프로세스
- DBWn(DB 라이터): 버퍼 캐시에 있는 Dirty Block을 디스크의 파일로 기록
- LGWR(로그 라이터): 리두 엔트리를 디스크에 기록
- CKPT(체크포인트): DBWn에 체크포인트 신호 전송, 데이터 파일과 제어 파일 갱신, 갱신 시각 기록
- SMON: 인스턴스 리커버리 수행
- PMON: 유저 프로세스에 failure 발생 시 복구 수행
- ARCn(아카이버): 온라인 리두 로그 파일을 아카이브 리두 로그 파일로 복사
- MMON(관리 모니터): 특정 지표가 임계값을 초과할 때 경고 발행, 추가 프로세스를 생성해 스냅샷 수행 등
- CJQ0 및 Jnnn: 사용자 작업(job) 실행, 주로 배치 모드로 동작
서버 프로세스 (Server Processes)
서버 프로세스: 클라이언트 프로그램을 대신해 DB와의 연결을 처리하는 프로세스. SQL 문을 파싱하고 실행하며, 결과를 fetch하여 클라이언트 프로그램에 반환하는 역할.
클라이언트 프로그램: 사용자를 대신해 동작하는 프로그램. 사용자의 요청을 서버 프로세스에 전달하고 결과를 받아 출력. (예시: SQL*Plus, SQL Developer)
서버 프로세스 동작 방식
- 전용 서버 모드 (Dedicated Server Mode): 각 클라이언트 프로세스가 자신만의 전용 서버 프로세스를 보유하는 방식. 1:1 대응 구조이므로 연결이 많아질수록 서버의 리소스 소비가 증가함
- 공유 서버 모드 (Shared Server Mode): 여러 클라이언트 연결이 소수의 서버 프로세스를 공유하는 방식. 동시 접속자가 많은 환경에서 리소스 효율적으로 사용 가능.
인스턴스 메모리 구조

인스턴스 구조 (출처: 오라클 19c 공식 문서) SGA (System Global Area): 인스턴스 운영에 필요한 데이터와 제어 정보를 담고 있는 메모리 구조들의 집합. 모든 서버 프로세스와 백그라운드 프로세스가 함께 공유함.
- 데이터베이스 버퍼 캐시: 데이터가 데이터베이스에 저장되기 전에 조회되거나 수정되려면 먼저 디스크에서 읽혀 버퍼 캐시에 저장되어야 함. 모든 유저 프로세스는 이 버퍼 캐시 접근을 공유.
- 리두 로그 버퍼: 디스크에 있는 온라인 리두 로그 파일에 기록되기 전까지 리두 데이터 캐시하는 영역
- 공유 풀(Shared Pool): 재사용 가능한 SQL 파싱 결과, 데이터 딕셔너리 정보, 저장 프로시저 등을 캐시하는 영역
- 대형 풀(Large Pool): (선택적) 백업/복구(RMAN), 병렬 쿼리, 공유 서버 모드의 UGA 등 대규모 메모리 요구 작업에 사용되는 영역
- 인메모리 영역(In-Memory Area): (선택적) 인메모리 컬럼 저장소(IM Column Store) 포함. 테이블, 파티션, Mview를 컬럼 기반 형식으로 저장하여 대용량 데이터 스캔 및 분석 쿼리 성능 최적화.
- 자바 풀: JVM 내에서 세션별 자바 코드와 데이터를 저장하는 메모리 영역
- 스트림 풀: 오라클 복제 기능에서 사용하는 메모리 영역
- 리절트 캐시: SQL 쿼리 및 PL/SQL 함수의 실행 결과를 캐시하는 영역. 동일한 쿼리가 재실행될 때 캐시된 결과를 바로 반환해 실제 쿼리 실행 비용 절감.

인스턴스 PGA 구조 (출처: 오라클 19c 공식 문서) PGA (Program Global Area): 서버 프로세스를 위한 데이터와 제어 정보를 담고 있는 비공유 메모리 영역
- 해당 서버 프로세스만 독점적으로 접근 가능
- 각 서버 프로세스마다 하나의 PGA가 존재, 백그라운드 프로세스도 자체 PGA를 할당받음
- 개별 PGA들의 집합은 인스턴스 PGA, PGA 메모리의 총합은 인스턴스 PGA 메모리
- SQL 문을 처리하고 로그인 및 세션 정보를 저장하는 데 사용
- SQL 작업 영역(SQL work areas): PGA에서 정렬이나 기타 SQL 연산을 위한 작업 메모리 공간
'DB 스터디 > 2 Day DBA' 카테고리의 다른 글
CH 5-3: 초기화 파라미터 확인 및 수정 (0) 2026.03.01 CH 5-2: 인스턴스 시작 및 종료 (0) 2026.02.27 CH 3-2: SQL*Plus/SQL Developer로 DB 관리 (0) 2026.02.26 CH 3-1: EM Express로 DB 관리 (0) 2026.02.26 CH 2-4: DBCA로 탬플릿/PDB 관리 (0) 2026.02.25