오라클 데이터베이스는 **다양한 백그라운드 프로세스**를 통해 데이터를 저장, 관리, 처리하는 강력한 시스템입니다. 백그라운드 프로세스는 **데이터베이스 성능 최적화, 자동 복구, 데이터 무결성 유지** 등의 역할을 수행하며, 오라클 DB의 안정적인 운영을 위해 필수적인 요소입니다.
📌 1. 오라클 백그라운드 프로세스란?
오라클 데이터베이스는 **클라이언트 요청을 처리하는 포그라운드 프로세스와 내부적으로 실행되는 백그라운드 프로세스로 구성**됩니다.
🔹 **포그라운드 프로세스** → 사용자의 SQL 실행 요청을 처리하는 프로세스
🔹 **백그라운드 프로세스** → DBMS 운영을 지원하는 필수적인 프로세스
⚙️ 2. 주요 백그라운드 프로세스
백그라운드 프로세스는 기능별로 다양한 역할을 수행하며, 대표적인 프로세스는 다음과 같습니다.
1) PMON (Process Monitor) – 프로세스 모니터
✔ **역할:** 비정상 종료된 세션을 정리하고, 할당된 리소스를 반환
✔ **기능:** 사용자 세션이 비정상 종료되면, 해당 트랜잭션을 롤백하고 잠금을 해제
2) SMON (System Monitor) – 시스템 모니터
✔ **역할:** 데이터베이스 복구 및 유지관리
✔ **기능:** 인스턴스 장애 발생 시 데이터베이스를 자동 복구
3) DBWR (Database Writer) – 데이터베이스 라이터
✔ **역할:** 변경된 데이터를 데이터 파일로 기록
✔ **기능:** 변경된 데이터 블록을 **디스크로 플러시(Flush)**하여 영구 저장
4) LGWR (Log Writer) – 로그 라이터
✔ **역할:** **REDO 로그**를 기록하여 트랜잭션 복구 지원
✔ **기능:** 트랜잭션이 실행될 때, REDO 로그를 디스크로 저장하여 장애 발생 시 데이터 복구 가능
5) CKPT (Checkpoint) – 체크포인트
✔ **역할:** 변경된 데이터를 데이터 파일에 반영할 시점을 결정
✔ **기능:** DBWR이 데이터를 디스크로 플러시하는 시점을 관리하여 복구 시간을 단축
6) ARCH (Archiver) – 아카이빙 프로세스
✔ **역할:** **REDO 로그를 백업하여 데이터 보호**
✔ **기능:** REDO 로그가 가득 차면, 이를 아카이브(보관)하여 장애 발생 시 데이터 복구 지원
7) MMON (Manageability Monitor) – 관리 모니터
✔ **역할:** 데이터베이스 성능을 모니터링하고 자동 통계를 수집
✔ **기능:** AWR(Automatic Workload Repository) 데이터 수집
8) RECO (Recoverer) – 분산 트랜잭션 복구
✔ **역할:** 분산 트랜잭션 장애 발생 시 복구 수행
✔ **기능:** 다른 DB와 연결된 트랜잭션이 중단될 경우 이를 자동 복구
📝 3. 백그라운드 프로세스 확인 방법
🖥 SQL 명령어로 확인
오라클 데이터베이스에서 현재 실행 중인 백그라운드 프로세스를 확인하려면 아래 SQL을 실행하면 됩니다.
SELECT name, description
FROM v$bgprocess
WHERE paddr <> '00';
🖥 리눅스/유닉스에서 확인
운영체제에서 실행 중인 프로세스를 확인하려면 다음 명령어를 사용하세요.
ps -ef | grep ora_
⚠️ 4. 백그라운드 프로세스 장애 시 해결 방법
오라클 백그라운드 프로세스 중 일부가 비정상 종료되면 데이터베이스 운영에 영향을 줄 수 있습니다.