본문으로 건너뛰기

설정하기

1. 지원 버전

  • Oracle 12c 이상 버전을 지원합니다.

Cloud 환경 Oracle 지원 현황

Cloud 환경Oracle 지원 여부
AWS✅ 지원
Azure❌ 미지원
OCI✅ 지원
NCP❌ 미지원
GCP❌ 미지원
SCP❌ 미지원

2. 필수 권한

기본 필요 권한

모니터링 계정(예: exemone)에 다음 권한을 부여해야 합니다:

GRANT CREATE SESSION TO exemone;
GRANT SELECT ANY dictionary TO exemone;
GRANT SELECT_CATALOG_ROLE TO exemone;
GRANT ALTER system TO exemone;

-- AWS RDS인 경우 추가 권한
GRANT EXECUTE ON rdsadmin.rdsadmin_util TO exemone;

ANY dictionary 권한 부여가 어려운 경우

SELECT ANY dictionary 권한 부여가 불가능한 환경에서는 아래 table/view에 대한 개별 SELECT 권한이 필요합니다:

수집 항목필요 table/view
ActiveSessionv$session, v$sql, v$sort_usage, v$transaction, v$process, v$statname, v$sesstat, v$sqltext
ArchivedLogv$archived_log
ASMv$asm_disk, v$asm_diskgroup
DBStatv$sysstat
DBVersionv$instance, v$version
DBWaitv$system_event
EventNamev$event_name
InitBootTimeV$INSTANCE
InitInstanceproduct_component_version, v$license
InitSQLStatv$sqlstats, v$sql
KillSessionALTER SYSTEM KILL SESSION 권한
OSStatV$OSSTAT
Parameterv$parameter
RACStatusv$instance, v$option
Rmanv$rman_backup_job
segmentdba_segments
SessionCountv$session
SessionDetailv$transaction, v$process, v$sort_usage, v$session, v$sql
SessionMetricv$sessmetric
SessionStatMetricv$sesstat
SessionStatusv$session
SgaStatv$sgastat
SQLBindv$sql_bind_capture
SQLMetricv$sql
SQLPlan / PlanDetail / PlanDiffv$sql_plan
SQLReasonv$sql_shared_cursor
SQLStatv$sqlstats, v$sql
StatNamev$statname
TableDBA_TAB_Modifications
Tablespacedba_free_space, dba_data_files
Tempv$sort_segment, dba_tablespaces, dba_temp_files
Timemodelv$sys_time_model
Undodba_undo_extents, dba_data_files, dba_rollback_segs
WaitChaindba_objects, v$wait_chains

3. 지표 수집 관리 설정

Oracle 인스턴스는 Setting > Database의 Instance 등록/편집 화면에서 Custom Configuration에 아래 키 값을 설정해 지표 수집 방식을 세부적으로 조정할 수 있습니다.

Custom Configuration 옵션

옵션명기본값설명
oracle.is_oracle_linuxfalseOracle Linux 환경에서 OS 지표를 에이전트가 아닌 쿼리 방식으로 수집합니다.
oracle.segment100SegmentMessage 수집 query 입력 argument
oracle.sqlbind_elapsedtime10SqlStatMessage 수집 결과 elapsed time이 해당 값을 초과할 경우 SqlBindMessage 수집
oracle.sqlbind_executions50SqlStatMessage 수집 결과 executions이 해당 값을 초과할 경우 SqlBindMessage 수집
oracle.sqlplan_elapsedtime10SqlStatMessage 수집 결과 elapsed time이 해당 값을 초과할 경우 SqlPlanMessage 수집
oracle.sqlplan_executions50SqlStatMessage 수집 결과 executions이 해당 값을 초과할 경우 SqlPlanMessage 수집
oracle.sqlreason_elapsedtime10SqlStatMessage 수집 결과 elapsed time이 해당 값을 초과할 경우 SqlReasonMessage 수집
oracle.sqlreason_executions50SqlStatMessage 수집 결과 executions이 해당 값을 초과할 경우 SqlReasonMessage 수집
oracle.sqltext_process_batch100SqlText 데이터 1회당 수집 개수 설정
oracle.sqltext_process_interval5SqlText 데이터 수집 간격 설정
oracle.sqltext_process_lru_count10000SqlText 데이터 수집 목록 관리 개수 설정
oracle.use_sidfalseDB 연결 설정

oracle.is_oracle_linux 옵션 설정

  1. Setting > Database에서 Oracle Instance를 등록합니다. 이때 OS Resource 수집은 disable로 설정합니다.
  2. 1에서 등록한 Instance를 편집 > Custom Configuration에서 oracle.is_oracle_linux 옵션을 true로 설정한 후 저장합니다.

옵션을 true로 설정하면 다음 지표가 쿼리 방식으로 수집됩니다.

지표Data ID계산 방식
(OS) Db Cpu Usage (%)db_oracle_os.db_cpu_usagebusy_time / (busy_time + idle_time) * 100의 델타 값
(OS) Db Memory Usage (%)db_oracle_os.db_memory_percentinactive_memory가 존재하는 경우: (1 - ((free_memory + inactive_memory) / total_memory)) * 100
inactive_memory가 존재하지 않는 경우: (1 - (free_memory / total_memory)) * 100
  • 지표를 직접 설정할 수 있는 화면(예: 대시보드, Oracle > Multi View, Trend Analysis > Trend 차트 등)에는 위 지표가 반영됩니다.
  • DB 공통으로 보여지는 화면(예: Database > Instance List의 CPU/Memory 데이터, Database > Instance Detail의 Metric)에는 반영되지 않습니다.