Oracle 멀티테넌트 데이터베이스 모니터링 (공개 미리 보기)

Instana 호스트 에이전트를 설치하면 Oracle 멀티테넌트 데이터베이스 센서가 자동으로 설치되지만, ‘구성’ 섹션에 설명된 대로 센서를 구성해야 합니다. 센서를 구성한 후에는 컨테이너 데이터베이스(CDB)와 여러 플러그인 가능 데이터베이스(PDB)를 모두 모니터링하고, ‘ Instana ’ UI에서 해당 메트릭을 확인할 수 있습니다.

참고: Kubernetes 또는 Red Hat OpenShift 클러스터에서 Oracle 멀티테넌트 데이터베이스를 모니터링할 때는 클러스터의 각 노드에 Instana 호스트 에이전트를 설치하지 마십시오. 전용 호스트 시스템에 호스트 에이전트를 설치하십시오.

보충 자료

지원되는 버전

Instana 다음의 Oracle 데이터베이스 버전을 메트릭 및 구성 데이터용으로 지원합니다:

  • Oracle Database 18c (18.1.0 // 12.2.0.2)
  • Oracle Database 19c (19.1.0 // 12.2.0.3)
  • Oracle Database 21c (21.1.0)
  • Oracle Database 23ai (23.4.0)

지원되는 문자 세트

Oracle Multitenant 데이터베이스 센서는 Oracle 데이터베이스에서 메트릭을 페치하기 위해 Oracle 에서 지원하는 모든 문자 세트를 지원합니다. Oracle 데이터베이스가 지원하는 문자 집합에 대한 자세한 내용은 ‘문자 집합’을 참조하십시오.

감지

원격 구성 옵션을 사용하여, Instana 에이전트가 동일한 호스트에서 실행 중이거나, 어떤 이유로든 에이전트를 설치할 수 없는 다른 호스트에서 실행 중인 Oracle 멀티테넌트 데이터베이스(CDB 및 PDB)를 자동으로 탐지하고 모니터링하도록 지시할 수 있습니다.

구성

필요한 데이터베이스 권한

센서를 Oracle 에 연결하고 지표 및 구성 데이터를 모니터하려면 다음 테이블에 대한 read 권한이 있어야 합니다.

#Create a role
create ROLE INSTANAROLE;

#Note: For Oracle Container Database (CDB), common roles must follow the naming convention C##<role_name>
#Example for CDB: create ROLE C##INSTANAROLE;#Grant privileges to this role for following tables and viewes

V_$SESSION, V_$BGPROCESS, V_$ACTIVE_SESSION_HISTORY, V_$SYSSTAT, V_$SGASTAT, V_$LIBRARYCACHE,
V_$LATCH, V_$ROWCACHE, V_$STATNAME, V_$SESSTAT, V_$PROCESS, V_$SQLAREA,
V_$PARAMETER, V_$SQL, V_$VERSION, V_$RESOURCE_LIMIT, V_$SYS_TIME_MODEL, V_$SYSTEM_WAIT_CLASS, V_$INSTANCE,
V_$LOCK, DBA_HIST_SQLTEXT, DBA_HIST_SQLSTAT, DBA_HIST_SNAPSHOT, DBA_HIST_ACTIVE_SESS_HISTORY,
DBA_USERS, DBA_OBJECTS, DBA_TABLESPACE_USAGE_METRICS, DBA_DATA_FILES, DBA_TEMP_FILES, V_$LOG, DBA_FREE_SPACE

eg. GRANT SELECT ON V_$SESSION to INSTANAROLE;

#Assign this role to a user. Same user needs to be configured in the configuration yaml (see sensor configuration section).
GRANT INSTANAROLE to <user>;

#The following tables/views require the Oracle Diagnostic Pack license.
V$ACTIVE_SESSION_HISTORY, DBA_HIST_SNAPSHOT, DBA_HIST_SQLSTAT, DBA_HIST_SQLTEXT, DBA_HIST_ACTIVE_SESS_HISTORY
 

센서 구성

Instana Oracle 멀티테넌트 데이터베이스의 원격 모니터링을 지원합니다.

Oracle 의 멀티테넌트 데이터베이스를 모니터링하려면 에이전트 구성 *instanaAgentDir*/etc/instana/configuration.yaml 파일을 통해 자격 증명을 제공해야 합니다.

원격 모니터링

Oracle Multitenant 데이터베이스의 원격 모니터링을 구성하려면 다음 구성을 참조하십시오.

com.instana.plugin.oracledb:
  remote: # we support listing multiple DBs here, both CDB's and PDB's!
    - host: '<ORCL_HOST_1>'
      port: '<ORCL_PORT>'
      user: '<ORCL_USER>' # default is 'sys as sysdba'
      password: '<ORCL_PASSWORD>'
      databaseSID: '<ORCL_DB_SID>' # either databaseSID or databaseServiceName is allowed
      databaseServiceName: '<ORCL_DB_SERVICE_NAME>'
      availabilityZone: 'Remote Monitoring'
      enableUniqueIdentifier: false # Default is false. Set to true only if you are monitoring multiple databases with identical SID/service names. Keep false for standard configurations
      poll_rate: 20
    - host: '<ORCL_HOST_2>'
      port: '<ORCL_PORT>'
      user: '<ORCL_USER>' # default is 'sys as sysdba'
      password: '<ORCL_PASSWORD>'
      databaseSID: '<INSERT_DB_SID>' # either databaseSID or databaseServiceName is allowed
      databaseServiceName: '<ORCL_DB_SERVICE_NAME>'
      availabilityZone: 'Remote Monitoring'
      enableUniqueIdentifier: false # Default is false. Set to true only if you are monitoring multiple databases with identical SID/service names. Keep false for standard configurations
      poll_rate: 5
 

폴링 비율은 센서가 Oracle 멀티 테넌트 데이터베이스 지표를 폴링하는 빈도 (초) 를 정의합니다. 기본값은 1초입니다.

참고: 인프라스트럭처 맵에서 원격 OracleDB 인스턴스는 파일의 configuration.yaml 키에 availabilityZone 지정된 이름으로 별도의 상자로 표시됩니다. 인스턴스를 찾으려면 Instana 의 Dynamic Focus 검색 창에 를 entity.type:oracleDB 입력하세요.

맞춤형 설문조사

다음 표에서는 최대 세 개의 0이 아닌 사용자 정의 폴링 비율을 구성할 수 있는 지표를 표시합니다. 기본적으로 폴링 비율이 0또는 0미만인 지표는 사용 안함으로 설정됩니다. 메트릭을 사용하지 않으려면 *instanaAgentDir*/etc/instana/configuration.yaml 구성 파일에서 해당 메트릭 항목을 제거하십시오.

이름 설명
TOP_경과_시간_쿼리 상위 경과 시간 조회의 목록입니다.
SQL ID CONSUMING_MORE_CPU 더 많은 CPU를 사용하는 SQL의 목록입니다.
사용자 foreground_sessions 활성 포그라운드 세션을 표시합니다.
TOP_10_SQL_HIGH_IO_LAST_1_HR 최근 1시간동안 I/O가 높은 최상위 SQL의 목록입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다.
CPU 사용량이 가장 많은 상위 10개 세션 상위 CPU 이용 세션의 목록입니다.
TOP_CPU_CONSUMING_SESSION_LAST_10_MIN 마지막 10분 동안의 상위 CPU 이용 세션 목록입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다.
현재 차단 세션 블로킹 세션에 대한 정보를 보는 데 사용됩니다.
라이브러리 캐시 HIT_RATIO 비율은 핀 히트를 발생시키는 핀 요청 수를 표시합니다.
ACTIVE_SESSIONS_RUNNING_MORE_THAN_600_SECS Oracle 데이터베이스에서 10분 이상 실행 중인 모든 활성 세션.
활성 세션 히스토리 데이터베이스의 샘플링된 세션 활동입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다.
TOP_10_SQL_HIGH_IO_LAST_24_HR 최근 24시간동안 I/O가 많은 최상위 SQL의 목록입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다.
TOP_CPU_QUERIES_LAST_24_HRS 최근 24시간동안의 상위 CPU 이용 조회 목록입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다.
바인딩 변수를 사용하지 않는 쿼리 코드에서 바인드 변수를 사용하지 않는 조회 목록입니다.
원격 모니터링

사용자 정의 폴링에 대한 원격 모니터링은 다음 구성을 참조하십시오.

com.instana.plugin.oracledb:
  remote: # we support listing multiple DBs here, both CDB's and PDB's!
    - host: '<ORCL_HOST_1>'
      port: '<ORCL_PORT>'
      user: '<ORCL_USER>' # default is 'sys as sysdba'
      password: '<ORCL_PASSWORD>'
      databaseSID: '<ORCL_DB_SID>' # either databaseSID or databaseServiceName is allowed
      databaseServiceName: '<ORCL_DB_SERVICE_NAME>'
      availabilityZone: 'Remote Monitoring'
      enableUniqueIdentifier: false # Default is false. Set to true only if you are monitoring multiple databases with identical SID/service names. Keep false for standard configurations
      poll_rate: 20
      customPolling: # Restricted to maximum 3 nonzero poll rates
        - poll_rate: 30 # in seconds
          metrics:
            - TOP_CPU_CONSUMING_SESSION_LAST_10_MIN
            - ACTIVE_SESSIONS_RUNNING_MORE_THAN_600_SECS
            - LIBRARY_CACHE_HIT_RATIO
            - CURRENT_BLOCKING_SESSIONS
        - poll_rate: 60 # in seconds
          metrics:
            - TOP_ELAPSED_TIME_QUERIES
            - TOP_TEN_CPU_CONSUMING_SESSION
            - SQL_ID_CONSUMING_MORE_CPU
            - USER_FOREGROUND_SESSIONS
            - TOP_10_SQL_HIGH_IO_LAST_1_HR
            - ACTIVE_SESSION_HISTORY
        - poll_rate: 3600 # in seconds
          metrics:
            - TOP_10_SQL_HIGH_IO_LAST_24_HR
            - TOP_CPU_QUERIES_LAST_24_HRS
            - QUERIES_NOT_USING_BINDING_VARIABLES
 

메트릭 보기

Oracle Multitenant 데이터베이스에 대한 메트릭을 보려면 다음 단계를 완료하십시오.

  1. Instana UI의 사이드바에서 ‘인프라’를 선택합니다.
  2. 모니터되는 특정 호스트를 클릭하십시오.

수집된 모든 지표 및 모니터된 프로세스가 있는 호스트 대시보드를 볼 수 있습니다.

구성 데이터

Oracle 멀티테넌트 데이터베이스 센서는 다음 구성 데이터를 수집합니다:

구성 항목 설명
버전 Oracle 데이터베이스 버전 번호
SID 시스템 식별자(SID): ‘ Oracle ’ 데이터베이스 인스턴스의 고유 이름
서비스 이름 데이터베이스에 연결하는 데 사용되는 네트워크 서비스 이름
시작 시간 데이터베이스 인스턴스가 시작된 시점의 타임스탬프
CPU 개수 데이터베이스 인스턴스에서 사용할 수 있는 CPU 수
최대 세션 수 허용되는 최대 동시 세션 수
DB 블록 크기 데이터베이스 블록 크기
포트 TCP Oracle 데이터베이스 리스너가 연결을 수락하는 포트 번호(기본값: 1521)

성능 매트릭

메트릭 설명 세분성
실행 중인 프로세스 수 실행 중인 프로세스 수입니다. 1초
활성 세션(10분 이상) 10분 이상 실행 중인 Oracle 데이터베이스의 모든 활성 세션. 30초
초당 DB 시간 데이터베이스 사용자 레벨 호출을 수행하는 데 소요되는 경과 시간입니다. 1초
DB CPU 시간 데이터베이스 사용자 레벨 호출을 수행하는 데 소비되는 CPU 시간입니다. 1초
SQL 실행 시간 SQL 쿼리 명령문이 실행되는 동안 경과된 시간입니다. 1초
구문 분석 시간 SQL 쿼리 명령문을 구문 분석하는 데 소요된 경과 시간입니다. 여기에는 소프트 및 하드 구문 분석 시간이 모두 포함됩니다. 1초
데이터베이스 CPU 시간 비율 총 데이터베이스 시간별로 데이터베이스에서 사용된 CPU의 양입니다. 1초
초당 대기 시간 사용자 I/O, 기타, 시스템 I/O, 동시성, 스케줄러, 애플리케이션, 커미트, 구성, 관리, 네트워크 및 큐에 대한 초당 대기 시간입니다. 1초
라이브러리 캐시 히트 비율(핀 히트) 비율은 핀 히트를 발생시키는 핀 요청 수를 표시합니다. 30초
SGA총 메모리 SGA (System Global Area) 의 총 메모리 (MB) 입니다. 1초
SGA 사용 메모리 SGA에서 사용되는 메모리 (MB) 입니다. 1초
SGA 여유 메모리 SGA의 사용 가능한 메모리 (MB) 입니다. 1초
SGA풀 이름 SGA (System Global Area) 의 풀 이름입니다. 1초
SGA풀 메모리 총계 SGA풀의 총 메모리 (MB) 입니다. 1초
SGA풀 사용 메모리 SGA풀에서 사용된 메모리 (MB) 입니다. 1초
SQL 실행 수 실행된 SQL 조회의 총 수입니다. 1초
SQL 실행 평균 시간 평균 SQL 실행 시간입니다. 1초
SQL 구문 분석 개수 하드 및 총 구문 분석 수입니다. 1초
SQL 구문 분석 비율 소프트 구문 분석 및 구문 분석 없이 수행되는 SQL 실행의 비율입니다. 1초
사용자 호출 호출, 커미트 및 롤백 수입니다. 1초
버퍼 캐시 적중률 디스크에서 읽지 않고 버퍼 캐시에서 찾은 페이지의 백분율입니다. 1초
물리적 및 논리적 세션 읽기 물리적 및 논리적 읽기의 수입니다. 1초
세션 사용자 세션 수 (활성 및 비활성) 및 백그라운드 세션 수입니다. 1초
테이블 공간 사용량 테이블스페이스 (영구, 임시 및 실행 취소) 사용량 (GB), 테이블스페이스 사용량 (백분율), 테이블스페이스의 최대 크기 및 자동 확장 가능 플래그입니다. 1초
상위 CPU 조회 (최근 24시간) CPU 시간 (밀리초), 디스크 읽기 수 및 조회가 실행되는 동안의 총 시간을 포함하는 최근 24시간동안의 상위 CPU 조회 목록입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다. 1시간
바인드 변수를 사용하지 않는 쿼리 쿼리 사본 수, 쿼리 실행 수 및 SQL 쿼리에서 사용되는 총 메모리 (MB) 가 있는 코드에서 바인드 변수를 사용하지 않는 쿼리 목록입니다. 1시간
상위 경과 시간 쿼리 SQL ID, SQL 조회 및 실행 시간 (분) 이 있는 상위 경과 시간 조회의 목록입니다. 60초
활성 세션 히스토리(마지막 1시간) SQL ID, 로드 백분율 및 세션 수를 사용하여 최근 1시간동안 데이터베이스에서 샘플링된 세션 활동입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다. 60초
상위 10개 CPU 이용 세션 세션 ID, 일련 번호, CPU 시간 (분) 및 운영 체제 프로그램 이름이 있는 상위 10개의 CPU 이용 세션 목록입니다. 60초
상위 CPU 이용 세션 (최근 10분) 세션 ID, 일련 번호 및 조회가 실행되는 동안의 총 시간이 포함된 최근 10분 동안의 상위 CPU 이용 세션 목록입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다. 30초
IO가 높은 상위 10개 SQL (최근 1시간) SQL ID, 사용자 이름 및 총 대기 시간 (밀리초) 을 사용하여 최근 1시간동안 I/O가 높은 상위 10개의 SQL 조회 목록입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다. 60초
현재 차단 세션 블로킹 세션에 대한 정보입니다. 30초
포그라운드 세션 활성 포그라운드 세션. 60초
더 많은 CPU를 사용하는 SQL 더 많은 CPU를 사용하는 SQL 조회의 목록입니다. 60초
최근 24시간동안 IO가 높은 상위 10개 SQL 최근 24시간동안 I/O가 많은 상위 10개의 SQL 조회 목록입니다. 이 메트릭을 사용하려면 ‘필수 DB 권한’ 섹션에 명시된 뷰에 대한 ‘ Oracle ’ 진단 팩 라이선스가 필요합니다. 1시간

건강 지표

각 센서에 대해, 상태 서명의 큐레이트된 지식 기반은 수신 메트릭에 대해 지속적으로 평가되며 사용자에게 영향을 주는 문제 또는 인시던트를 제기하는 데 사용됩니다.