설정하기
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 |
|---|---|
| ActiveSession | v$session, v$sql, v$sort_usage, v$transaction, v$process, v$statname, v$sesstat, v$sqltext |
| ArchivedLog | v$archived_log |
| ASM | v$asm_disk, v$asm_diskgroup |
| DBStat | v$sysstat |
| DBVersion | v$instance, v$version |
| DBWait | v$system_event |
| EventName | v$event_name |
| InitBootTime | V$INSTANCE |
| InitInstance | product_component_version, v$license |
| InitSQLStat | v$sqlstats, v$sql |
| KillSession | ALTER SYSTEM KILL SESSION 권한 |
| OSStat | V$OSSTAT |
| Parameter | v$parameter |
| RACStatus | v$instance, v$option |
| Rman | v$rman_backup_job |
| segment | dba_segments |
| SessionCount | v$session |
| SessionDetail | v$transaction, v$process, v$sort_usage, v$session, v$sql |
| SessionMetric | v$sessmetric |
| SessionStatMetric | v$sesstat |
| SessionStatus | v$session |
| SgaStat | v$sgastat |
| SQLBind | v$sql_bind_capture |
| SQLMetric | v$sql |
| SQLPlan / PlanDetail / PlanDiff | v$sql_plan |
| SQLReason | v$sql_shared_cursor |
| SQLStat | v$sqlstats, v$sql |
| StatName | v$statname |
| Table | DBA_TAB_Modifications |
| Tablespace | dba_free_space, dba_data_files |
| Temp | v$sort_segment, dba_tablespaces, dba_temp_files |
| Timemodel | v$sys_time_model |
| Undo | dba_undo_extents, dba_data_files, dba_rollback_segs |
| WaitChain | dba_objects, v$wait_chains |
3. 지표 수집 관리 설정
Oracle 인스턴스는 Setting > Database의 Instance 등록/편집 화면에서 Custom Configuration에 아래 키 값을 설정해 지표 수집 방식을 세부적으로 조정할 수 있습니다.
Custom Configuration 옵션
| 옵션명 | 기본값 | 설명 |
|---|---|---|
oracle.is_oracle_linux | false | Oracle Linux 환경에서 OS 지표를 에이전트가 아닌 쿼리 방식으로 수집합니다. |
oracle.segment | 100 | SegmentMessage 수집 query 입력 argument |
oracle.sqlbind_elapsedtime | 10 | SqlStatMessage 수집 결과 elapsed time이 해당 값을 초과할 경우 SqlBindMessage 수집 |
oracle.sqlbind_executions | 50 | SqlStatMessage 수집 결과 executions이 해당 값을 초과할 경우 SqlBindMessage 수집 |
oracle.sqlplan_elapsedtime | 10 | SqlStatMessage 수집 결과 elapsed time이 해당 값을 초과할 경우 SqlPlanMessage 수집 |
oracle.sqlplan_executions | 50 | SqlStatMessage 수집 결과 executions이 해당 값을 초과할 경우 SqlPlanMessage 수집 |
oracle.sqlreason_elapsedtime | 10 | SqlStatMessage 수집 결과 elapsed time이 해당 값을 초과할 경우 SqlReasonMessage 수집 |
oracle.sqlreason_executions | 50 | SqlStatMessage 수집 결과 executions이 해당 값을 초과할 경우 SqlReasonMessage 수집 |
oracle.sqltext_process_batch | 100 | SqlText 데이터 1회당 수집 개수 설정 |
oracle.sqltext_process_interval | 5 | SqlText 데이터 수집 간격 설정 |
oracle.sqltext_process_lru_count | 10000 | SqlText 데이터 수집 목록 관리 개수 설정 |
oracle.use_sid | false | DB 연결 설정 |
oracle.is_oracle_linux 옵션 설정
- Setting > Database에서 Oracle Instance를 등록합니다. 이때 OS Resource 수집은 disable로 설정합니다.
- 1에서 등록한 Instance를 편집 > Custom Configuration에서
oracle.is_oracle_linux옵션을 true로 설정한 후 저장합니다.
옵션을 true로 설정하면 다음 지표가 쿼리 방식으로 수집됩니다.
| 지표 | Data ID | 계산 방식 |
|---|---|---|
| (OS) Db Cpu Usage (%) | db_oracle_os.db_cpu_usage | busy_time / (busy_time + idle_time) * 100의 델타 값 |
| (OS) Db Memory Usage (%) | db_oracle_os.db_memory_percent | inactive_memory가 존재하는 경우: (1 - ((free_memory + inactive_memory) / total_memory)) * 100inactive_memory가 존재하지 않는 경우: (1 - (free_memory / total_memory)) * 100 |
- 지표를 직접 설정할 수 있는 화면(예: 대시보드, Oracle > Multi View, Trend Analysis > Trend 차트 등)에는 위 지표가 반영됩니다.
- DB 공통으로 보여지는 화면(예: Database > Instance List의 CPU/Memory 데이터, Database > Instance Detail의 Metric)에는 반영되지 않습니다.