Only this pageAll pages
Couldn't generate the PDF for 118 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

SysMasterDB 8.3 Manual

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

SysMasterDB 접속하기

로그인그룹 선택

Docker-compose / Podman-compose 환경

설치 및 파라미터 설정기동 / 로그 확인 / 종료 / 초기화

Admin

Admin 계정은 다음과 같은 권한을 기본적으로 보유한다.

  • Settings > User 메뉴를 통해 소속 그룹의 멤버 관리(사용자 생성, 수정, 삭제)

  • 소속 그룹에서 관제하는 모든 인스턴스에 대한 모든 Configurable Privileges

한 그룹에 Admin은 0명 이상 존재할 수 있다.

Installation Guide

본 장에서는 SysMaster DB 8 설치 과정을 설명한다.

설치 준비하기SysMaster DB 8.3 설치하기관제 데이터베이스 설정하기

Common User

Common User는SysmasterDB에서 얻을 수 있는 기본적인 권한이다.

유저는 Super Admin 또는 Admin으로부터 권한(Configurable Privileges)을 할당받는다.

만약 아직 소속된 그룹이 존재하지 않다면, Undefined로 로그인이 가능하고, 로그인 후에는 My Account를 제외한 모든 페이지에서 정보를 열람할 수 없다.

Layout 설정

Instance Monitoring 페이지의 Layout Tab 영역에서 제공되는 Layout 설정 기능에 대해 설명한다.

사용자 제약 사항

  • Layout 설정 기능은 Super Admin 및 Admin 권한을 가진 사용자에게 제공된다.

  • 일반 사용자는 Admin 권한 사용자에 의해 Custom 권한을 부여받은 경우에 한해 본 기능을 사용할 수 있다.

Layout Tab

Instance Monitoring 페이지의 Layout Tab 영역에서는 다양한 지표를 사용자가 원하는 형태로 모니터링 할 수 있다.

Main Monitoring

본 절에서는 DB Session 현황, DB 머신의 CPU 및 Memory 사용량, DB 인스턴스의 다양한 지표를 차트를 통하여 모니터링 할 수 있는 Main Monitoring에 대해 설명한다.

Session MonitoringServer MonitoringInstance Monitoring

배포 파일 구성

1. SysMaster DB 8.3 파일 구성

설치 환경에 따른 SysMaster DB 8.3의 배포 파일은 다음과 같이 구성된다.

Docker-compose (Podman-compose) 환경

Kubernetes 환경


2. Java TPM Agent 파일 구성

Java TPM Agent의 배포 파일은 다음과 같이 구성된다.

유저 / TIP 설정

1. 관제 데이터베이스 유저 설정

SysMaster DB 에서 관제 데이터베이스 등록 시 유저 정보를 입력하게 된다. 기존에 생성된 유저를 사용할 수 있고, 새로운 유저를 생성해 사용할 수도 있다. 이때 유저에게 필요한 권한은 CONNECT, ALTER SYSTEM, SELECT_CATALOG_ROLE이다. 유저 생성 및 권한 부여는 SYS 계정에서 아래 DDL 및 DCL 문을 사용한다.

추가로 TPR Report, ASH Report 기능을 사용하려면 아래 DCL 문을 사용하여 관련 권한을 부여해야 한다.

참고

SysMasterDB 8.3은 관제 데이터베이스에 테이블 생성이나 데이터 적재를 하지 않는다.


2. libtpmstat.so 라이브러리

TPM Agent에서 Tibero로부터 정보를 수집하기 위해서는 libtpmstat 라이브러리가 필요하다. 관제 데이터베이스에 279651 패치가 적용되어 libtpmstat 라이브러리가 있는 경우에는 Tibero 환경 변수 설정 과정을 통해 해당 라이브러리를 사용할 수 있다.

만약 관제 데이터베이스에 libtpmstat 라이브러리가 없는 경우에는 해당 데이터베이스에 맞는 라이브러리를 추가로 배포해야 한다. 이때 배포된 libtpmstat.so 파일을 TPM Agent 디렉터리로 이동시킨 후 TPM Agent 라이브러리 경로 설정을 통해 해당 라이브러리를 사용할 수 있다.

참고

libtpmstat.so 라이브러리 파일의 배포를 위하여 관제 데이터베이스 패치 목록과 정확하게 동일한 패치가 되어있는 관제 데이터베이스 빌드를 통하여 libtpmstat.so 빌드를 해야 한다. 예를 들어, Tibero 6에 [1번 패치], [2번 패치], [3번 패치] 세 개의 패치가 되어 있는 곳과 [1번 패치], [3번 패치] 두 개의 패치가 되어 있는 곳이 있다면, [1번 패치], [2번 패치], [3번 패치]가 적용된 Tibero에서 빌드한 libtpmstat.so 파일과 [1번 패치], [3번 패치]가 적용된 Tibero에서 빌드한 libtpmstat.so 파일 두 개 모두 각각 빌드해서 배포해야 한다.

추가로 libtpmstat.so 라이브러리 빌드 시, Tibero 바이너리 빌드 시 적용하였던 모든 빌드 플래그들을 동일하게 적용하여 라이브러리 빌드를 진행하여야 한다. 예를 들어 NET_BACKUP 빌드 플래그를 적용하여 Tibero 바이너리를 빌드하여 배포했다면, 라이브러리 배포 시에도 해당 플래그를 넣고 libtpmstat.so 라이브러리 빌드를 진행하여야 한다.

sysmaster-db
sysmaster-db-{version}.tar
meta.conf
repo.conf
docker-compose.yml
podman-compose.yml
.env
sysmaster-db-patch-{version}.tar
patch
license
    +-- oss_license
        |-- font_licenses.md
        |-- OSS_LICENSES.md
        |-- THIRD-PARTY-NOTICES.txt
        |-- (and other open-source license files)
sysmaster-db-{version}.tar
kubernetes
    +-- init
        |-- 0.namespace.yaml
        |-- configmap.yaml
        |-- pvc.yaml
        |-- service.yaml
    +-- db
        |-- metadb-deployment.yaml
        |-- repodb-deployment.yaml
    +-- kafka
        |-- kafka.yaml
    +-- sysmaster
        |-- analyzer-deployment.yaml
        |-- client-deployment.yaml
        |-- collector-deployment.yaml
        |-- sdm-deployment.yaml
        |-- tibero-master-deployment.yaml
sysmaster-db-patch-{version}.tar
patch
license
    +-- oss_license
        |-- font_licenses.md
        |-- OSS_LICENSES.md
        |-- THIRD-PARTY-NOTICES.txt
        |-- (and other open-source license files)
jdk8
    +-- aix7
        |-- ibm-semeru-open-jdk_ppc64_aix_8u382b05_openj9-0.40.0.tar
    +-- centos7
        |-- OpenJDK8U-jdk_x64_linux_8u342b07.tar.gz
lib
    +-- aix7
        |-- libJNITpmStat.so
    +-- centos7
        |-- libJNITpmStat.so
application.yml
set.sh
tpmagent.jar
tpmctl.sh
tryrun.sh
CREATE USER [username] IDENTIFIED BY [password];
GRANT CONNECT, ALTER SYSTEM, SELECT_CATALOG_ROLE TO [username];
GRANT EXECUTE ON SYS.DBMS_TPR TO [username];
GRANT EXECUTE ON UTL_TPR TO [username];

기동 / 로그 확인 / 종료 / 초기화

Kubernetes 환경에서 SysMaster DB 를 기동 / 로그 확인/ 종료 / 초기화하는 방법이다.

1. 기동

설치 파일이 위치한 디렉터리에서 아래와 같은 순서로 명령을 수행하여 쿠버네티스 오브젝트를 생성한다.

1.1. Namespace, ConfigMap, PVC, Service 생성

kubectl apply -f kubernetes/init

1.2. RepoDB, MetaDB 디플로이먼트 생성 (데이터베이스 생성이 완료된 상태에서 진행)

kubectl apply -f kubernetes/db

다음 단계로 진행하기 전 RepoDB, MetaDB가 정상적으로 부팅 완료되어야 한다. 이는 다음과 같은 로그를 통해 확인 가능하다.

먼저 각각 해당 pod의 터미널 출력 로그에서 아래와 같은 메세지가 출력되는 것을 확인한다.

[ENTRYPOINT LOG]: INFO: Attempting to start PostgreSQL server...

다음으로 각 데이터베이스의 로그파일에 아래와 같은 메세지가 출력되는 것을 확인한다.

LOG: database system is ready to accept connections

이때 각 데이터베이스의 로그 파일 확인 방법은 "2. 로그 확인"을 참고한다.

1.3. Kafka 디플로이먼트 생성 (Kafka 파드가 running 상태에서 진행)

kubectl apply -f kubernetes/kafka

sysmasterdb8-sdm-container가 생성되면, 해당 컨테이너 내 sysmaster/license 경로 하위에 발급받은 라이선스 파일을 배치한다. 라이선스 파일명은sysmaster-db-license.xml 이며, 변경 불가능하다.

부팅이 완료된 이후에 로그인과 프로그램 사용이 가능하다. 부팅 완료는 SDM 로그에서 아래와 같은 로그를 통해 확인할 수 있다.


기본적으로 각 모듈들의 pod 내 컨테이너에 접속하여 해당 모듈의 log 파일을 볼 수 있다. SysMaster DB 모듈들은 동일하게 각 컨테이너 내 아래 경로에 로그가 적재된다.

추가로, 사용자의 편의를 위하여 로그 확인 전용 컨테이너를 생성하여 활용할 수 있다.

배포 파일 구성에 포함된 client-deployment.yaml 파일에 정의된 sysmasterdb8-client-pod 내에, 로그 확인 전용 컨테이너인 sysmasterdb8-log-container가 정의되어 있다. 사용자는 해당 컨테이너 내 로그 디렉터리 경로(/sysmaster/logs)를 통해 모든 SysMaster DB 모듈의 로그를 확인할 수 있다.


설치 파일이 위치한 디렉터리에서 아래와 같은 순서로 명령을 수행하면 SysMaster DB 가 종료된다. 이때 SysMaster DB 를 종료해도 Repository DB와 Meta DB의 데이터 파일은 유지되므로, SysMaster DB 를 다시 기동하면 이전에 저장한 데이터를 사용할 수 있다.


아래의 명령을 수행하면 모든 데이터가 삭제되고, 최초 설치 상태와 동일하게 동작한다. 단, 이전에 저장한 데이터는 사용할 수 없다.

기동 / 로그 확인 / 종료 / 초기화

Docker-compose 및 Podman-compose 환경에서 SysMaster DB 8.3를 기동, 로그 확인, 종료, 초기화하는 방법이다.

1. 기동

1.1. SysMaster DB 환경 변수 설정

export SYSMASTERDB_HOME={SysMasterDB_Home_Path}

인자
설명

{SysMasterDB_Home_Path}

docker-compose.yml 파일이 위치한 디렉터리 경로

1.2. SYSMASTERDB_HOME을 PATH에 추가

export PATH=$PATH:$SYSMASTERDB_HOME

1.3. 라이선스 파일 세팅

지정된 경로 하위에 발급받은 라이선스 파일을 배치한다. 라이선스 파일명과 경로는 아래와 같으며, 변경 불가능하다.

  • 라이선스 파일명

    • sysmaster-db-license.xml

  • 라이선스 경로

$SYSMASTERDB_HOME 경로 하위에 license 디렉토리가 존재하지 않는 경우, 해당 디렉토리를 직접 생성해준 후 라이선스 파일(sysmaster-db-license.xml)을 넣어주면 된다.

부팅이 완료된 이후에 로그인과 프로그램 사용이 가능하다. 부팅 완료는 SDM 로그에서 아래와 같은 로그를 통해 확인할 수 있다.


.env 파일의 로그 관련 파라미터 설정을 통해 로그가 저장될 경로를 지정할 수 있다. default 로그 경로는 ./logs이므로 docker-compose.yml 파일이 있는 디렉터리에 logs 폴더가 자동으로 생성되며, 여기서 로그 파일을 확인할 수 있다.


SysMaster DB 8.3 기동을 위한 환경 변수 및 PATH가 설정된 상태에서 아래의 명령을 수행하면 모든 서비스가 제거되고, SysMaster DB 8.3가 종료된다. 이때 SysMaster DB 8.3를 종료해도 METADB_PATH와 REPODB_PATH에 생성된 파일은 유지되므로, SysMaster DB 8.3를 다시 기동하면 종료 전과 동일하게 사용할 수 있다.


METADB_PATH와 REPODB_PATH 디렉터리를 삭제한 후 SysMaster DB 8를 다시 기동하면 최초 설치 상태와 동일하게 동작한다. 단, 이전에 저장한 데이터는 사용할 수 없다.

SysMaster DB 8.3 설치하기

SysMaster DB 8.3 설치 방법을 Docker-compose / Podman-compose 환경과 Kubernetes 환경으로 나누어 설명한다. 이때 각 환경에서 다음과 같은 단계로 설명한다.

  1. 설치 및 파라미터 설정 - SysMaster DB 8.3 의 설치 및 파라미터 설정방법에 대해서 설명한다.

  2. 기동 / 로그 확인 / 종료 / 초기화- 기동, 로그 확인, 종료, 초기화 방법에 대해서 설명한다.

  3. 마지막으로 에서는 SysMaster DB 8.3에서 사용하는 포트들에 대해서 설명한다.

Detail Layout

Card View Detail Layout
  • CPU / Memory 파이 차트에 마우스를 호버하여 상세 정보를 확인할 수 있다.

  • Lock Waiter: 인스턴스가 락을 기다리고 있는 세션 갯수를 표시한다.

  • Tablespace: 사용량이 90% 이상인 테이블스페이스 갯수를 표시한다. 마우스 호버시 사용룰 내림차순으로 10개 테이블스페이스에 대해 사용 현황을 표시한다.

  • Running Session: 지난 5분간의 Running Session 추이를 Area 차트로 표시하며 현재 Running Session의 갯수를 우상단에 표시한다.

관제 인스턴스 DB가 다운 상태일 경우 마지막에 Normal 상태였던 시간을 표시한다.

Agent Disconnected 상태일 경우 위와 같이 표시되며 카드뷰 마지막에 정렬된다.

Alert Alarm

Alert Alarm 항목에서는 아직 Confirm 처리되지 않은 Alert들의 리스트를 나타낸다. Alert는 유저가 직접 생성한 기준에 따라 발생한 User-created 카테고리와 자동으로 설정되어 전체 인스턴스에 대해서 발생하는 System 카테고리로 나뉘어져 있다.

각 Alert에 대해 Confirm 처리를 하거나, 우상단에 Confirm All 버튼을 눌러야 Alert Event를 제거할 수 있다.

Alert 항목

User-Created Alert

  • Group : Alert 등록된 그룹명

  • Instance: Alert가 발생한 인스턴스 명

  • Alert Item: Alert 대상 지표

  • Threshold: 설정한 Alert 발생 기준

  • Instance: Alert가 발생한 인스턴스 명

  • Alert Trigger: System Alert가 발생한 원인을 나타낸다.


하단에 Go to Alert Events History 버튼을 클릭하여 할 수 있다.

SysMasterDB 시작하기

본 장에서는 SysMasterDB 접속 이후의 사용 방법을 다음과 같은 단계로 설명한다.

  1. SysMasterDB 접속하기 - 로그인 및 그룹 선택 방법에 대해 설명한다.

  2. 권한 설정하기 - 그룹과 권한에 대해 설명한다.

  3. User 생성하기 - 유저 생성 방법에 대해 설명한다.

  4. - 관제 DB 등록 방법에 대해 설명한다.

  5. - 그룹 생성하는 방법에 대해 설명한다.

Profile

프로파일 기능을 통해 아래의 동작을 수행할 수 있다.

  • 내 계정 설정

  • 테마 변경 (Light / Dark)

  • About

    • 현재 서비스에 대한 정보를 확인할 수 있다.

  • 모니터링 그룹 변경

    • 시스마스터 각 메뉴에서 모니터링 할 그룹을 설정 할 수 있다.

  • 로그아웃

Super Admin

Super Admin은 SysmasterDB의 모든 기능을 수행할 수 있는 최고 관리자를 의미한다.

Super Admin 계정은 다음과 같은 권한을 기본적으로 보유한다.

  • Dashboard에서 인스턴스 등록, 수정, 삭제

  • Settings > All Groups 메뉴를 통한 그룹 생성, 수정, 삭제

  • Settings > All Users 메뉴를 통한 SysMasterDB에 등록된 모든 사용자 생성, 수정, 삭제

Super Admin은 SysmasterDB에서 단 한 명만 존재한다.

Instance 수정하기

Super Admin 유저의 경우, Instance Info의 더보기[···] 메뉴를 통해 인스턴스 수정 페이지에 진입할 수 있다.

아래 예시 화면은 인스턴스 수정 페이지로, 기존 등록된 인스턴스 정보를 변경한 후 연결 테스트 및 적용할 수 있다.

항목별 상세 설명은 Instance 등록하기를 참고한다.

User 생성하기

Super Admin과 Admin은 settings에서 유저를 생성할 수 있다.

항목
설명

User ID

유저의 ID

Group&Role

유저를 생성하기 위해서는 id 중복 체크를 필수적으로 진행해야 한다.

비밀번호는 8자 이상, 문자,숫자,특수문자를 넣어서 생성해야 한다.

외부 접속 허용 포트

SysMaster DB 8에서 사용하는 포트 중 외부 접속을 허용해야 하는 포트들은 다음과 같다.

SysMaster DB 서버에서 허용해야 하는 포트 목록

포트 이름
용도
기본값
허용 대상

관제 데이터베이스 서버에서 허용해야 하는 포트 목록

포트 이름
용도
기본값
허용 대상

라이선스 정보 확인하기

Super Admin 유저는 아래와 같이 Global Navigation Bar (GNB) > Profile > About 클릭 시 화면에 표출되는 모달을 통해 현재 서비스에 적용된 라이선스 정보를 확인할 수 있다.

아래는 About 모달 예시 화면으로, License Info 영역을 통해 라이선스 타입, 만료 기한, 잔여 코어 수를 확인할 수 있다.

추가로, Instance 등록하기, Instance 수정하기 페이지에서도 라이선스 정보 확인이 가능하다.

Compact Layout

  • CPU / Memory 파이 차트에 마우스를 호버하여 상세 정보를 확인할 수 있다.

  • Lock Waiter: 인스턴스가 락을 기다리고 있는 세션 갯수를 표시한다.

  • Running Session: 지난 1분간의 Running Session 추이를 Area 차트로 간단하게 표시하며 현재 Running Session의 갯수를 중간에 표시한다.

  • Tablespace: 사용량이 90% 이상인 테이블스페이스 갯수를 표시한다. 마우스 호버시 사용룰 내림차순으로 10개 테이블스페이스에 대해 사용 현황을 표시한다.

  • Running Session: 지난 1분간의 Running Session 추이를 Area 차트로 간단하게 표시하며 현재 Running Session의 갯수를 중간에 표시한다.

관제 인스턴스 DB가 다운 상태일 경우 마지막에 Normal 상태였던 시간을 표시한다.

Group

모든 사용자는 하나 이상의 그룹에 소속될 수 있다. 그룹에 소속되면 해당 그룹의 역할(Role)을 부여 받게 된다.

ex) admin, user

사용자는 한 그룹 당 한 개의 역할을 가질 수 있으며, 여러 개의 그룹에 속한 경우 그룹마다 각각 다른 역할을 가질 수 있다.

그룹에는 인스턴스가 할당된다. 그룹원들은 그룹에 할당된 인스턴스에 대한 권한(Configurable Privileges)을 할당받을 수 있다.


Configurable Privileges

Configurable privileges는 각 유저별 권한을 의미한다.

기능별, 인스턴스별로 존재하며, 어드민이나 슈퍼 어드민이 직접 수정이 가능하다.

기본값은 전부 권한 없음이다.

인스턴스가 명시된 privilege는 해당 인스턴스에서만 기능을 사용할 수 있고, 인스턴스가 명시되지 않은 privilege는 인스턴스와 무관하게 모든 페이지에서 기능을 사용할 수 있다.

변경사항이 생기면 save 버튼이 활성화 되며 save을 눌러 저장을 해야 변경사항이 저장된다. cancel을 누르게 되면 기존 설정값으로 돌아간다.

다음은 privilege별 설명이다.

Privilege
기능

Dashboard

본 장에서는 선택된 그룹 내의 모든 관제 데이터베이스 인스턴스를 통합 모니터링 할 수 있는 Dashboard에 대해 설명한다.

각 모니터링 중 인스턴스에 대한 실시간 상태 정보 및 지표를 제공한다.

우상단의 톱니바퀴 버튼을 눌러 Auto Refresh 주기 및 중단을 설정할 수 있다.

Dashboard 구성 요소

대시보드는 다음과 같은 주요 섹션으로 구성된다.

Global Navigation Bar (GNB)

  • 주요 메뉴 및 전역 내비게이션 기능 제공

  • DB 인스턴스들의 상태 및 인스턴스의 Alert 발생 현황을 확인하는 영역

  • Card View 형태로 각 인스턴스별 상태 및 CPU / Running Session등 주요 지표 제공

  • 그룹 내 인스턴스들의 더 자세한 실시간 성능 지표를 제공하는 차트와 테이블 제공

Layout Split

  • Custom 영역과 Card View 영역의 크기 비율을 조정하는 버튼

  • 드래그 혹은 클릭을 통해 Card View : Custom Area 영역을 1:2 / 2:1 / 3:0 으로 설정 가능

Manual Download

매뉴얼 내려받기

GNB 우측의 버튼을 통해 pdf 형식의 매뉴얼을 내려받을 수 있다.

Instance Overview

Instance Monitoring 페이지의 Instance Overview 영역에서는 현재 선택된 그룹의 인스턴스 목록과 상태에 대한 요약 정보를 확인할 수 있다.

Instance Overview 영역은 Instance Monitoring 페이지의 좌측에 사이드 패널 형태로 제공된다.

해당 영역에는 현재 선택된 그룹에 등록된 인스턴스 목록이 표출되며, 각 인스턴스별 상태에 대한 요약 정보가 제공된다.

사용자는 하나의 Layout에서 최대 5개까지 인스턴스를 동시에 선택하여 모니터링 할 수 있다.

3개 인스턴스(TAC-Node0, TAC-Node1, TAC-Node2)의 실시간 데이터를 동시에 모니터링

Instance Overview 영역을 통해 확인할 수 있는 인스턴스 상태 정보는 다음과 같다.

  • CPU

    • 해당 인스턴스의 실시간 CPU 사용률

  • Lock

    • 해당 인스턴스의 실시간 Lock Waiter Session Count

  • Alert

    • 해당 인스턴스의 실시간 미확인 알림 상태 및 개수

인스턴스 구동 상태가 DB Down 또는 Agent Disconnected인 경우에는 아래와 같이 별도의 서식으로 표기된다.

추가로, 사용자는 필요에 따라 접기 버튼을 클릭하여 Instance Overview 영역 사이드 패널을 접거나 펼칠 수 있다.

Instance Monitoring

Instance Monitoring 페이지에서는 사용자가 다양한 지표를 원하는 형태의 레이아웃으로 설정하여, 실시간 모니터링할 수 있다.

Instance Monitoring 페이지는 좌측 사이드 패널로 제공되는 Instance Overview 영역과, 페이지 전반을 구성하는 Layout Tab 영역으로 이루어져 있다.

Session 상세보기

특정 session에 대한 현재 수행 중인 SQL 및 wait event 상황등 상세 정보를 모니터링 할 수 있다. session 목록에서 상세 보기를 원하는 session의 SID를 클릭하면 Session 상세보기 페이지가 열린다.

Session 기본 정보

Session Monitoring 페이지에서 한 row로 보여 주었던 항목들이다. Session Monitoring 화면과 마찬가지로 refresh, auto refresh, kill session 기능을 제공한다.

그룹 선택

그룹 선택 화면에서는 사용자가 들어갈 그룹을 선택한다. 만약 사용자가 아무런 그룹에 소속되어 있지 않다면, Undefined(그룹 없음)으로 로그인이 가능하다.

원하는 그룹을 선택한 후 Sign In to group 버튼을 누르면 대시보드 화면으로 이동한다.

Settings

Settings 페이지로 연결된다.

Delete Layout

Layout 목록에서 특정 Layout의 더보기 버튼 클릭 시 제공되는 Delete 기능을 통해 기존 Layout을 삭제할 수 있다.

Temp Usage

글로벌 내비게이션 바에서 [Realtime] > [Usage Monitoring] > [Temp Usage] 를 클릭하면 Temp Usage 페이지가 열린다.

Temp Usage 페이지에서는 Session Temp 사용량 정보를 보여준다. 효율적인 실행 계획 또는 잘못 쓰여진 SQL Statement로 인하여 과도하게 Temporary Tablespace 영역을 사용하고 있는 세션을 모니터링할 수 있다.

다음은 Session Temp Usage 페이지에서 제공하는 항목에 대한 설명이다.

항목
설명

Heatmap Trend

글로벌 내비게이션 바에서 [Analysis] > [Perfomance Analysis] > [Heatmap Trend] 메뉴를 클릭하면 Heatmap Trend 화면이 열린다.

Heatmap Trend 화면에서는 선택한 인스턴스의 Resource 사용량에 대한 Overview를 확인할 수 있다. 이때 지정한 구간 동안 시간, 일자별로 Resource 사용량을 도식화하여 한눈에 확인할 수 있고, 선택한 시간의 분 단위 막대 그래프로 정밀하게 전체적인 사용량의 흐름을 알 수 있다.

참고

Heatmap의 검색 가능 구간은 10일 미만이다.

SysMasterDB Manual

안내서 정보

안내서 제목 : SysMasterDB 매뉴얼 발행일 : 2026-04-15 소프트웨어 버전 : SysMasterDB 8.3.5 안내서 버전 : v1.5.0

본 안내서는 SysMasterDB 8.3를 시스템에 설치하는 과정을 설명한다.

SysMasterDB 8.3를 설치하고자 하는 시스템 관리자 그리고 DBA를 대상으로 기술한다.

  • 데이터베이스의 이해

Lock Monitoring

글로벌 내비게이션 바에서 [Realtime] > [Lock Monitoring] 메뉴를 클릭하면 Lock Monitoring 화면이 열린다.

Lock Monitoring 화면에서는 세션간의 Lock 정보를 Tree 형식으로 보여준다. 따라서 Lock을 점유하고 있는 Holder Session과 Lock을 획득하기 위해 기다리고 있는 Waiter Session을 모니터링 할 수 있다. 그리고Lock을 점유하고 있는 세션을 모니터링할 수 있으며, 특정 세션을 종료 시킬 수 있다.

다음은 Lock Tree Table 화면에서 제공하는 항목에 대한 설명이다.

항목
설명

Instance Info

모니터링 DB 인스턴스 및 장비에 관한 상세 정보를 제공한다.

이름
설명

History Analysis

  • 지정한 기간 동안에 변경된 SQL Plan에 대해 비교 분석 기능을 제공한다.

  • 각 관제 DB에서의 세션 접속 추이와 각 시점의 세션 접속 현황을 제공한다.

Instance Overview

모니터링 중인 그룹에 포함된 DB 인스턴스들의 상태 및 인스턴스의 Alert 발생 현황을 확인하는 영역이다.

각 인스턴스당 색상이 할당되며, TAC / TSC 클러스터일 경우 묶여서 배치된다.

Instance Overview에서는 각 인스턴스의 상태를 한눈에 확인할 수 있다. 우측 Alert 항목에 Alert 항목이 보일 경우 Normal, 이며, Agent Disconnected 혹은 DB Down일 경우 해당 상태가 우측에 표시된다.

우측 화살표 버튼을 클릭하여 Instance Overview 메뉴를 숨기거나 펼칠 수 있다.


모니터링 대상 DB의 상태에는 Normal, Agent Disconnected, Down이 있다.

Global Navigation Bar (GNB)

Global Navigation Bar를 통해 시스마스터 각 메뉴로 이동해 기능을 사용할 수 있다.

GNB로 이동할 수 있는 메뉴는 Realtime, Analysis, , ,, 이다.

- 논리적 읽기, 물리적 읽기, 실행 횟수 등 세션 실시간 지표를 모니터링한다.

- CPU·메모리 사용량 등 OS 수준의 자원 사용 현황과 프로세스별 자원 소비를 필터 옵션과 함께 모니터링한다.

- 사용자 지정 차트 레이아웃으로 선택한 인스턴스를 실시간 모니터링한다.

- 테이블스페이스 사용량과 상태를 시간별 업데이트 및 실시간 데이터 수집으로 모니터링한다.

권한 설정하기

Expanded Layout

  • CPU / Memory 파이 차트에 마우스를 호버하여 상세 정보를 확인할 수 있다.

  • Lock Waiter: 인스턴스가 락을 기다리고 있는 세션 갯수를 표시한다.

  • Tablespace: 사용량이 90% 이상인 테이블스페이스 갯수를 표시한다. 하단에 스크롤 가능한 테이블을 통해 테이블스페이스 사용 현황을 표시한다.

Realtime

본 장에서는 데이터베이스의 실시간 상태 모니터링 기능을 제공하는 Realtime Monitoring에 대해 설명한다.

  1. - DB 세션 현황, DB 머신의 CPU 및 메모리 사용량 등 DB 실시간 지표들을 확인할 수 있다.

  2. - 테이블스페이스, 파일, UNDO 및 TEMP 공간의 실시간 상태를 확인할 수 있다.

All Session Flow

글로벌 내비게이션 바에서 [Analysis] > [History Analysis] > [All Session Flow] 메뉴를 클릭하면 All Session Flow 화면이 열린다.

All Session Flow 화면에서는 지정한 기간 동안 접속한 DB 사용자별로 구분하여 세션 개수를 그래프로 제공한다. 이때 특정 시점의 사용자가 몇개의 세션을 맺었는지 확인이 가능하며, 선택한 시점에 어떤 세션들이 활동을 하였는지 확인할 수 있다.

Alert Events

현재 모니터링 중인 인스턴스들의 Aert 발생 현황을 나타내는 영역이다. 각 Alert Level (Error, Warning, Info) 별로 몇개의 Alert가 발생하고 있는지 표시한다. 버튼을 클릭하여 해당 인스턴스의 Alert Event History로 이동한다.

User Created Alert 및 System Alert 모두 확인 할 수 있으며, Alert가 발생한 시각, Alert 이름, Alert 레벨, Alert가 발생한 인스턴스, Confirm 여부 및 Alert 확인시 작성한 유저 Comment 이력을 확인 할 수 있다.

인스턴스 및 필터 조건을 변경하여 다른 인스턴스 및 특정 시간대에서 발생한 Alert들을 조회 할 수 있다.

Chart 공통 기능

Instance Monitoring 페이지의 Layout Tab 영역에서 제공되는 모니터링 지표 차트의 공통 기능에 대해 설명한다.

차트 좌상단의 지표명 우측에 표출되는 info 아이콘 위에 마우스 포인터를 올려두면, 해당 지표에 대한 Description을 확인할 수 있다.

차트 우상단의 더보기 아이콘을 클릭하면, 각 차트별로 지원되는 부가 기능 목록을 확인할 수 있다.

차트 종류에 따라 지원되는 부가 기능이 다르며, 차트별 부가 기능에 대한 설명은 을 참고한다.

Changed Plan Analysis

글로벌 내비게이션 바에서 [Analysis] > [History Analysis] > [Changed Plan Analysis] 메뉴를 클릭하면 Changed Plan Analysis 화면이 열린다.

Changed Plan Analysis 화면에서는 지정한 기간 동안에 변경된 SQL Plan에 대해 비교 분석할 수 있는 차트를 제공한다.

Card View

현재 모니터링 중인 인스턴스의 상태와 주요 모니터링 데이터들을 카드 뷰 형태로 확인할 수 있다.

카드 뷰는 기본적으로 3초 주기로 Refresh되며, Card Order By 에 설정된 대로 정렬되어 표시된다. (카드 정렬 기준 참조)

좌상단의 카드 레이아웃 버튼을 통해 / / 레이아웃으로 전환하여 확인 할 수 있다.

  • Cpu Usage / Memory Usage / Lock Session Waiter Count / Running Session Count로 Card View를 정렬한다.

Usage Monitoring

본 절에서는 Tablespace, File, Temp 스페이스, Undo 스페이스 사용 현황을 실시간 모니터링 할 수 있는 Usage Monitoring에 대해 설명한다.

File Usage

글로벌 내비게이션 바에서 [Realtime] > [Usage Monitoring] > [File Usage] 를 클릭하면 File Usage 페이지가 열린다.

File Usage 페이지에서는 데이터 파일 사용량 정보를 보여준다. File Usage 는 관제 DB 에 대한 부하를 최소화하기 위해 한시간마다 수집되는데, 우 상단 [Collect] 버튼 클릭시 최신 File Usage 정보를 수집하여 보여준다.

모니터링 대상 DB의 테이블스페이스의 데이터 파일 I/O 사용량 정보를 확인할 수 있다.

항목
설명

Kubernetes 환경

Apply Layout

[New Tab]에서 [Add Layout] 버튼을 클릭하여 기존 Layout 목록을 확인하고, 사용자가 원하는 Layout을 선택하여적용할 수 있다.

다음은 Layout 목록 모달과, 사용자가 선택한 모달을 적용한 화면 예시이다.

New Plan List

New Plan List 화면에서는 신규 Plan 이력을 확인할 수 있다.

다음은 New Plan List 화면에서 제공하는 항목에 대한 설명이다.

항목
설명

Group 생성하기

GNB 우측 상단에 있는 아이콘을 누르면 setting에 접근할 수 있다.

settings 메뉴의 좌측 상단에 있는 all groups 메뉴를 누르고 하단에 있는 create 버튼을 누르면 group을 생성할 수 있다.

All Groups는 슈퍼 어드민에게만 제공되는 메뉴이다.

Edit Layout

[Edit Layout] 버튼을 클릭하여 기존 Layout 설정을 변경할 수 있다.

Edit Layout 페이지의 각 항목별 설명은, 을 참고한다.

High Availability Monitoring

본 절에서는 TSC 구성 및 네트워크 현황, 복구 현황을 실시간 모니터링할 수 있는 High Availability Monitoring에 대해 설명한다.

SQL Detail 탭

현재 session에서 수행중인 SQL과 동일한 SQL의 과거 수행 이력 및 통계를 보여준다.

현재 session에서 수행 중인 SQL과 동일한 SQL이 과거에 수행되었던 이력을 조회하기 위하여, 원하는 기간을 선택하여 조회할 수 있다.

현재 session에서 수행 중인 SQL 전문을 보여준다.

현재 session에서 수행 중인 SQL에 대한 Plan을 확인할 수 있는 화면이다. 이때 SQL Plan을 Tree 구조로 보여준다.

Usage Analysis

Usage Analysis에서는 지정한 기간 동안의 변화량을 확인할 수 있다.

  • 지정한 기간 동안의 테이블스페이스 이름별 크기의 변화량을 확인할 수 있다.

  • 지정한 기간 동안의 파일 시스템 이름별 서버에 마운트된 크기의 변화량을 확인할 수 있다.

Analysis

본 장에서는 실시간 지표 수집을 통해 누적된 데이터의 기간 분석을할 수 있는 Analysis 메뉴에 대해 설명한다.

  1. - 성능과 관련된 지표들을 분석 할 수 있다.

  2. - 그간 Plan 변화, 접속 세션 수 변화, Alert 발생량 변화, Invalid Object 갯수 변화 등의 추이를 분석할 수 있다.

  3. - Tablespace, Filesystem, Segment, Temp Tablespace, Undo Tablespace 사용량 추이를 확인할 수 있다.

Undo Usage

글로벌 내비게이션 바에서 [Realtime] > [Usage Monitoring] > [Undo Usage] 를 클릭하면 Undo Usage 화면이 열린다.

Undo Usage 페이지에서는 Undo 사용량 정보를 보여준다. 현재 트랜잭션을 발생시킨 후 Commit 이나 Rollback을 통하여 트랜잭션을 종료시키지 않고 있는 세션들의 정보를 확인할 수 있다.

다음은 Session Undo Usage 페이지에서 제공하는 항목에 대한 설명이다.

항목
설명

Total Session Count

Total Session Count 화면에서는 All Session Count에서 선택한 총 세션의 갯수를 확인할 수 있다.

다음은 Total Session Count 화면에서 제공하는 항목에 대한 설명이다.

항목
설명

참고

최초 계정 정보는 아이디: admin, 패스워드: admin 이다.

CLIENT_PORT

브라우저에서 SysMaster DB UI에 접속하기 위한 포트

80

SysMaster DB UI 접속을 위해 브라우저를 실행하는 사용자 PC

COLLECTOR_PORT

TPM Agent가 SysMaster DB 로 수집 정보를 보내기 위해 연결하는 포트

8292

관제 데이터베이스 서버

REPODB_PORT

REPODB에 접속하기 위한 포트 (사용자가 REPODB를 직접 조회하기 위한 용도로 SysMaster DB 동작과는 무관)

15432

REPODB에 접속할 사용자 PC

METADB_PORT

METADB에 접속하기 위한 포트 (사용자가 METADB를 직접 조회하기 위한 용도로 SysMaster DB 동작과는 무관)

25432

METADB에 접속할 사용자 PC

티베로 리스너 포트

SysMaster DB 서버에서 관제 데이터베이스에 연결하는 포트

8629

SysMaster DB 서버

외부 접속 허용 포트

Instance 등록하기
Group 생성하기
Group
Super Admin
Admin
Common User
Tablespace Usage
File Usage
Temp Usage
Undo Usage
설치 및 파라미터 설정
기동 / 로그 확인 / 종료 / 초기화

Layout 목록 모달 화면예시
Apply Layout을 통해 사용자가 선택한 Layout을 적용한 화면 예시

참고

Layout 내 차트 배치 및 세부 설정에 관한 변경은 Layout Tab 기본 기능의 [Layout 저장]을 참고한다.

Add Layout

DB Down 상태

Agent Disconnected 상태

DB Down 상태

Data Collection

Table Space Usage와 File Usage에서 선택된 인스턴스의 정보를 collect 할 수 있는 권한을 가지게 된다.

Kill Session

선택된 인스턴스의 세션을 강제로 종료시킬 수 있는 권한을 가지게 된다.

Data Export

CSV 파일을 다운로드 할 수 있는 권한을 가지게 된다.

Custom

Dashboard에서 Layout 수정할 수 있는 권한과, Instance Monitoring에서 Layout 생성/수정/삭제 할 수 있는 권한을 가지게 된다.

Instance Overview
Card View
Custom Area

Chart

Instance Monitoring 페이지의 Layout Tab 영역에서 제공되는 모니터링 지표 차트의 기능과 종류에 대해 설명한다.

관제 데이터베이스 설정하기

관제 데이터베이스의 설정 방법 및 TPM Agent의 설치 방법을 다음과 같은 단계로 설명한다.

  1. 유저 / TIP 설정 - 관제 데이터베이스의 유저와 TIP 설정하는 방법을 설명한다.

  2. TPM Agent 설치하기 - TPM Agent의 설치 방법을 설명한다.

설치 준비하기

SysMaster DB 8.3를 설치하기 전 준비 과정을 다음과 같은 단계로 설명한다.

  1. 시스템 요구사항 - 설치하기 전에 확인해야 할 시스템의 요구 사항에 대해서 설명한다.

  2. 설치 환경 세팅 - SysMaster DB 8.3를 설치하기 전에 필요한 환경 구성에 대해서 설명한다.

  3. 배포 파일 구성 - 설치를 위한 배포 파일들의 구성 요소에 대해서 설명한다.

TPM Agent 설치하기

설치 및 파라미터 설정TPM Agent 기동 / 종료

SysMaster DB UI상에 표시되는 인스턴스 이름

Type

모니터링 DB 타입

IP

관제 대상 인스턴스의 IP

Port

관제 대상 인스턴스의 Listener Port

DB Name

관제 대상 인스턴스의 DB 이름 (티베로일 경우 DB SID)

DB User

관제 대상 인스턴스의 모니터링 계정

DB Cluster

관제 대상의 클러스터 여부 표시

DB Platform

관제 대상 장비에 설치된 OS

DB Hostname

관제 대상 인스턴스가 설치된 장비의 hostname

DB TIP

관제 대상 인스턴스의 TIP 파일 (설정 파일) 경로

OS Version

관제 대상 장비에 설치된 OS 상세 정보

DB Version

관제 대상 인스턴스의 버전 정보

DB Build Number

관제 대상 인스턴스 빌드 번호

DB Patch List

관제 대상 DB에 적용된 패치 리스트

TPM Agent ID

TPM Agent의 application.yml 파일에 설정한, 해당 DB의 내부 식별 ID

Instance Info

Instance Alias

주어진 기간동안 Hard Parse가 발생한 SQL 리스트를 확인 할 수 있다.

Alert Event Analysis

  • 사용자가 설정한 알림 및 시스템 알림 규칙 대한 알림 발생 이력을 확인할 수 있다

Invalid Object

  • Invalid Objects Count 데이터와 Invalid Objects 상세 정보를 확인할 수 있다.

Changed Plan Analysis
All Session Flow
Search SQL Text

Segment Usage
  • 지정한 기간 동안의 세그먼트 이름별 크기의 변화량을 확인할 수 있다.

Temp Usage

  • 지정한 기간 동안 시간 단위의 Temp 크기의 변화량을 확인할 수 있다.

Undo Usage

  • 지정한 기간 동안 시간 단위의 Undo 크기의 변화량을 확인할 수 있다.

Tablespace Usage
Filesystem Usage

사용자 이름

Running Session

Running Session 수

Total Session Count 화면

User Name

1.4. SysMaster 디플로이먼트 생성 및 라이선스 파일 세팅

참고

라이선스(기간 만료 등의 이유로) 파일 교체가 필요한 경우, 해당 경로 내 기존라이선스 파일을 신규 라이선스파일로 바꿔준 후 SysMasterDB 서비스를 재기동하면 된다.

2. 로그 확인

3. 종료

1.1. SysMaster 디플로이먼트 삭제

1.2. Kafka 디플로이먼트 삭제

1.3. RepoDB, MetaDB 디플로이먼트 삭제

참고

1. SysMaster 디플로이먼트와 Kafka 디플로이먼트는 항상 같이 삭제한다.

2. RepoDB, MetaDB 디플로이먼트는 반드시 삭제할 필요는 없으며, SysMaster 종료 후에도 RepoDB와 MetaDB에 접속해 데이터를 확인할 수 있다.

4. 초기화

$SYSMASTERDB_HOME/license

참고

라이선스(기간 만료 등의 이유로) 파일 교체가 필요한 경우, 해당 경로 내 기존 라이선스 파일을 신규 라이선스 파일로 바꿔준 후 SysMasterDB 서비스를 재기동하면 된다.

1.4. 실행

1.4.1. Docker-compose 환경

1.4.2. Podman-compose 환경

2. 로그 확인

참고

Client 모듈의 경우 따로 로그를 파일로 남기고 있지 않고 있으므로, docker compose logs 와 같은 명령어로 출력되는 로그를 확인해야한다.

3. 종료

4. 초기화

kubectl apply -f kubernetes/sysmaster
Started SdmApplication in ... seconds (JVM running for ...)
/sysmaster/logs
kubectl delete -f kubernetes/sysmaster
kubectl delete -f kubernetes/kafka
kubectl delete -f kubernetes/db
kubectl delete -f kubernetes/init
sysmaster-db up
podman compose -f podman-compose.yml up -d
Started SdmApplication in ... seconds (JVM running for ...)
sysmaster-db down

RDBMS의 이해

  • 운영체제 및 시스템 환경의 이해

  • UNIX 계열(LINUX 포함)의 기본 지식


  • 티맥스티베로 SysMasterDB 매뉴얼에 적용되는 저작권 안내사항 이다.

    경기도 성남시 분당구 정자일로 45 티맥스타워

    Tel : +82-1544-8629

    E-Mail : gitbook@tibero.com

    이 소프트웨어(SysMasterDB 8®) 사용설명서의 내용과 프로그램은 저작권법과 국제 조약에 의해서 보호받고 있다. 사용설명서의 내용과 여기에 설명된 프로그램은 TmaxTibero Co., Ltd.와의 사용권 계약 하에서만 사용이 가능하며, 사용설명서는 사용권 계약의 범위 내에서만 배포 또는 복제할 수 있다. 이 사용설명서의 전부 또는 일부분을 TmaxTibero의 사전 서면 동의 없이 전자, 기계, 녹음 등의 수단을 사용하여 전송, 복제, 배포, 2차적 저작물 작성 등 의 행위를 하여서는 안된다.

    이 소프트웨어 사용설명서와 프로그램의 사용권 계약은 어떠한 경우에도 사용설명서 및 프로그램과 관련된 지적 재산권(등록 여부를 불문)을 양도하는 것으로 해석되지 아니하며, 브랜드나 로고, 상표 등을 사용할 권한을 부여하지 않는다. 사용설명서는 오로지 정보의 제공만을 목적으로 하고, 이로 인한 계약상의 직접적 또는 간접적 책임을 지지 않으며 사용설명서 상의 내용은 법적 또는 상업적인 특정한 조건을 만족시키는 것을 보장하지는 않는다. 사용설명서의 내용은 제품의 업그레이드나 수정에 따라 그 내용이 예고 없이 변경될 수 있으며, 내용상의 오류가 없음을 보장하지 않는다.

    SysMaster DB 8®는 TmaxTibero Co., Ltd.의 등록 상표이다. 기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상표로서 참조용으로만 사용된다.

    Spoqa Han Sans Neo 및 Inconsolata가 적용되며 SIL Open Font License 이다.

    상세정보는 제품 내 위치한 아래의 디렉터리에서 확인할 수 있다. ${INSTALL_PATH}/license/font_li censes

    본 제품의 일부 파일 또는 모듈은 아래의 라이선스를 준수한다. Apache License 2.0, BSD 2-Clause License, CDDL 1.0 / 1.1, Confluent Community License, Eclipse Public License (EPL) 1.0 / 2.0, Eclipse Distribution License 1.0, GNU General Public License (GPL) 2.0, GNU Lesser General Public License (LGPL) 2.1, MIT License, MIT-0, Mozilla Public License (MPL) 1.1 / 2.0, Public Domain (CC0 포함), Revised BSD License, The JSON License, WTFPL

    상세정보는 제품 내 위치한 아래의 디렉터리에서 확인할 수 있다. $BINARY_HOME/oss_license


    본 문서는 총 8개의 장으로 구성된다.

    SysMasterDB 8 설치 과정을 설명한다.

    🔎 Installation Guide 바로가기

    SysMasterDB 접속부터 권한 설정 등 사용자 설정 과정을 안내한다.

    🔎 SysMasterDB 시작 바로가기

    Global Navigation Bar를 통해 시스마스터 각 메뉴로 이동해 기능을 사용할 수 있다.

    🔎 Global Navigation Bar (GNB) 바로가기

    SysmasterDB의 Dashboard에 대해 안내한다.

    🔎

    실시간으로 확인 할수 있는 monitoring 기능에 대해 안내한다.

    🔎

    SysmasterDB에서 제공하는 분석 기능에 대해 안내한다.

    🔎

    Group, 사용자 등 각종 설정 메뉴에 대해 안내한다.

    🔎

    서비스에서 제공하는 모니터링 대상 Component에 대한 간략한 설명이다.

    🔎

    사전 필요 지식

    본 안내서는 SysMasterDB 8.3를 실무에 적용하거나 운용하는 데 필요한 모든 사항을 포함하지 않는다.

    저작권 안내

    주소

    WWebsite

    기술서비스센터

    Restricted Rights Legend

    Trademarks

    Font Copyrights

    Open Source Software Notice

    안내서 구성

    Instance

    SysMaster DB에 등록된 해당 인스턴스 이름

    SID

    세션의 SID

    Serial#

    세션의 시리얼 번호

    Elapsed Time

    세션의 Running 시간

    Status

    세션의 Holder 및 Waiter 정보

    Session Status

    세션의 상태

    Username

    세션 사용자 이름

    Module

    세션의 모듈 이름

    Program

    세션의 프로그램 이름

    Machine

    세션의 호스트 이름

    IP

    User 접속 IP 주소

    SQL ID

    세션이 수행 중인 SQL의 SQL ID

    Child Number

    세션이 수행 중인 SQL Plan의 Child Number 값

    Wait Event

    세션의 Wait Event 이름

    Type

    Lock 타입

    ID1

    Lock ID1

    ID2

    Lock ID2

    Mode

    Holder가 점유한 Lock 모드 (Waiter는 항상 0)

    Request

    Waiter가 요청한 Lock 모드 (Holder는 항상 0)

    Wait Time

    대기한 시간

    Lock을 점유하고 있는 세션을 종료시켜 Lock을 해제할 수 있는 기능이다.

    우선 Lock Tree Table에서 해제할 세션을 선택한 후 Lock Tree Table 화면 오른쪽 상단의 [Kill Session] 버튼을 클릭하면 Kill Session 팝업창이 열린다. 이때 해당 세션을 Kill하여 Lock을 해제할 수 있다.

    Kill Session

    Configurable Privileges 중 선택한 인스턴스에 대해 [Kill Session] 권한이 부여된 사용자에 한해 사용할 수 있는 기능이다.

    참고

    팝업창 정보에 대해서 Session Monitoring의 '을 참고한다.

    Normal: DB가 기동중이며 TPM Agent와의 연결이 확인되어 지표를 수집하고 있는 상태를 나타낸다.
  • Agent Disconnected: DB는 기동중이나 Agent와 연결이 안되어 지표 수집이 안되는 상태를 나타낸다.

  • Down: DB 인스턴스가 다운 상태이거나 연결을 맺을 수 없는 상태를 나타낸다.


  • Super Admin의 경우 'Import 버튼'을 통해 관제 대상 인스턴스를 등록 할 수 있다.


    인스턴스 항목 오른쪽에 각 인스턴스별 발생한 Alert 현황을 파악할 수 있으며, 해당하는 버튼 클릭시 Error / Warning Alert 발생 현황을 확인할 수 있다.


    인스턴스 오버뷰에서 특정 인스턴스를 선택하여 Card View 및 Custom Area에서 해당 인스턴스에 대한 데이터만 표시하도록 설정할 수 있다.

    인스턴스 선택시 Dashboard 모든 영역에서 Auto Refresh가 멈추며 모든 영역의 데이터가 선택했던 시점으로 고정된다.


    각 인스턴스를 클릭해 각 메뉴로 빠르게 전환하거나, Instance Info를 통해 해당 인스턴스의 정보를 확인할 수 있다.

    드롭 다운 메뉴는 두가지의 섹션으로 나뉘어져 있다

    • Recommend: SysMasterDB에서 추천하는 메뉴

      • Performance Trend: 해당 인스턴스에 대한 Performance Trend 메뉴로 이동한다.

      • Instance Monitoring: 해당 인스턴스에 대한 Instance Monitoring 메뉴로 이동한다.

      • : 해당 인스턴스가 TSC일 경우 해당 인스턴스에 대한 TSC Monitoring 메뉴로 이동한다.

    • 전체

    Instance 상태 설명

    참고

    1분간 등록된 인스턴스와의 연결 시도가 실패할 경우 SysMasterDB는 해당 DB 인스턴스를 Down 상태로 간주한다. 이후 연결이 다시 가능해질 경우 자동으로 이를 인식하여 Normal 상태로 전환된다.

    주의

    방화벽 설정 변경 등의 이유로 TPM Agent 데이터 수집 전송이 멈췄을 경우 Normal 상태에서 아무런 지표가 보이지 않는 현상이 있을 수 있다. 따라서 Normal 상태인데 실시간 지표가 보이지 않는다면, 관제 DB 머신과 TPM Agent 로그를 확인해 볼 필요가 있다.

    Import Instance

    Alert Events

    참고 바로가기

    인스턴스 선택 기능

    드롭 다운 메뉴 설명

    File Usage - 데이터베이스 파일 사용량을 자동으로 매시간 수집하며, 필요 시 실시간 업데이트도 가능하다.

    Temp Usage - 비효율적인 쿼리나 과도한 자원 사용을 감지하기 위해 임시 테이블스페이스 사용량을 모니터링한다.

    Undo Usage - 트랜잭션이 완료되지 않은 세션의 Undo 사용량을 모니터링한다.

    트리 뷰로 세션 잠금(lock) 정보를 모니터링하고, 필요 시 차단된 세션을 종료할 수 있다.

    TSC Monitoring - TSC 클러스터 토폴로지를 시각화하고, 데이터베이스 역할·상태·TSN 세부 정보를 모니터링한다.

    Performance Trend - 그래프와 Time Slice 기능을 사용해 장기적인 성능 추세를 분석한다.

    Top N Performance - 높은 자원 사용의 주요 원인이 되는 상위 SQL을 분석한다.

    Heatmap Trend - Heatmap과 드릴다운 분석으로 시간대별 자원 사용 현황을 시각화한다.

    Changed Plan Analysis - 지정한 기간 동안의 SQL 실행 계획(SQL Plan) 변화를 비교·분석한다.

    All Session Flow - 세션 접속 추이와 실시간 세션 상태를 모니터링한다.

    Search SQL Text- Hard Parse 이벤트를 발생시킨 SQL 문을 추적한다.

    Alert Analysis - 시스템 및 사용자 정의 알림(Alerts) 이력을 추적한다.

    Invalid Object - 유효하지 않은 데이터베이스 객체의 개수와 세부 정보를 추적한다.

    Tablespace Usage - 테이블스페이스 크기 변화를 시간에 따라 추적한다.

    Filesystem Usage - 서버의 파일시스템 크기 변화를 추적한다.

    Segment Usage - 지정한 기간 동안 세그먼트 크기 변화를 추적한다.

    Temp Usage - 임시 테이블스페이스 크기 변화를 시간별로 모니터링한다.

    Undo Usage - Undo 테이블스페이스 크기 변화를 시간별로 추적한다.

    TPR Report - 인스턴스 또는 클러스터 단위의 성능 보고서를 생성·분석한다.

    ASH Report - 활성 세션 분석을 위한 ASH 보고서를 생성·조회한다.

    Realtime

    Main Monitoring

    Usage Monitoring

    알림
    메뉴얼 다운로드
    Settings
    Profile
    Session Monitoring
    Server Monitoring
    Instance Monitoring
    Tablespace Usage

    Running Session: 지난 5분간의 Running Session 추이를 Area 차트로 표시하며 현재 Running Session의 갯수를 우상단에 표시한다.

    관제 인스턴스 DB가 다운 상태일 경우 마지막에 Normal 상태였던 시간을 표시한다.

    Agent Disconnected 상태일 경우 위와 같이 표시되며 카드뷰 마지막에 정렬된다.

    DB Down 상태

    Agent Disconnected 상태

    Lock Monitoring - DB 세션 간의 Lock 현황을 파악하고 문제를 분석할 수 있다.
  • High Availability Monitoring - TSC 구성 및 네트워크 현황, 복구 현황을 실시간 모니터링할 수 있다.

  • Main Monitoring
    Usage Monitoring

    차트 우상단의 확대 아이콘을 클릭하면, 별도의 모달을 통해 해당 차트를 확대하여 확인할 수 있다.

    차트 우하단 모서리를 클릭한 상태로 드래그하여 해당 차트의 크기를 조절할 수 있다.

    차트 우상단의 닫기 아이콘을 클릭하면, 현재 레이아웃에서 해당 차트를 제거할 수 있다.

    일부 차트 종류에서는 실시간 모니터링 중 사용자의 편의를 위해 다른 페이지로 연계해주는 기능을 제공한다.

    해당 기능은 Bar, Line, Area, Stack Bar 차트에서 특정 인스턴스 그래프 클릭 시 사용할 수 있으며, 이동 가능한 페이지는 아래와 같다.

    • Realtime > Session Monitoring

    • Analysis > Performance Trend

    • Analysis > Top N Performance

    • Analysis > Changed Plan Analysis

    • Settings > Create Alert

    모니터링 지표 설명

    부가 기능

    Chart Type
    모니터링 지표 차트 예시

    차트 확대

    차트 크기 변경

    차트 닫기

    Detail Page Navigation

    Refresh 수행시 설정된 기준에 따라 Card View가 정렬되며, None으로 설정된 경우 Instance Overview의 순서대로 정렬된다.

    • 좌상단의 핀 버튼을 클릭하여 핀 한 카드를 좌상단에 고정시킬 수 있다.

    • 여러 카드 뷰가 핀 되었을 경우 핀 된 순서대로 고정된다.

    • Card View의 Updated Time을 표시한다.

    • Card Layout 오른쪽에 Compact / Detailed / Expanded를 클릭하여 Card View Layout을 변경할 수 있다.

    • Card View 선택 기능

      • Card View 를 클릭하여 Instance Overview에서 인스턴스를 클릭한 것과 마찬가지로 특정 인스턴스만 강조할 수 있다.

      • 인스턴스를 강조하면 하단 Custom Area에 모든 인스턴스의 지표가 표시되는 대신 강조된 인스턴스의 데이터만 표시된다.

    Card View 공통 기능 설명

    Compact
    Detailed
    Extended

    핀 기능

    Card View 설정 패널

    오른쪽 상단에 숨기기 버튼을 이용하면 Card view 설정 패널을 숨길 수 있다.

    Tablespace Name

    테이블스페이스 이름

    Name

    파일 경로를 포함한 파일명

    Physical Reads

    Physical Read 횟수

    Physical Writes

    Physical Write 횟수

    Physical Block Reads

    Physical Block Read 횟수

    Physical Block Writes

    Physical Block Write 횟수

    Single Block Reads

    Single Block Read 횟수

    Free/Total Size

    사용 가능 File 공간 크기 현황

    Used/Total Size

    사용중인 File 공간 크기 현황

    Total/Auto Extend Limit Size

    File 자동 확장 최대 증가 크기 현황

    Auto Extend

    File 자동 확장 여부

    Configurable Privileges 중 선택한 인스턴스에 대해 [Data Collection] 권한이 부여된 사용자에 한해 [Collect] 버튼을 사용할 수 있다.

    SQL Text

    SQL 구문

    Child Number

    SQL의 Child Number

    SQL ID

    New Plan List 화면

    SQL ID

    그룹 생성 시 필요한 항목은 다음과 같다.

    항목
    설명

    Group Name

    생성할 그룹의 이름을 지정한다.

    Instance

    그룹에 할당될 인스턴스를 지정한다.

    Member&Name

    그룹에 넣을 유저를 id기준으로 지정한다.

    현재 수행 중인 SQL과 동일한 SQL들의 과거 이력들의 통계 정보를 보여준다. Summary, execute count, physical reads, logical reads, plan history, sql trace 항목들을 보여준다.

    Summary 탭 화면에서는 분석 구간 동안 stat 지표 및 wait event 리스트와 각 wait event별 wait time의 값을 확인할 수 있다.

    항목
    설명

    Statistics

    Statistics 지표 확인

    Wait Class

    분석 구간 동안의 wait class 목록과 각 wait class별 wait time의 값을 확인

    Wait Event

    Wait class에서 선택한 항목에 대한 상세 내역을 확인

    Execute Count 탭 화면에서는 시간 단위별 Execute Count를 차트 형태로 확인할 수 있다.

    Physical Reads 탭 화면에서는 시간 단위별 Physical Reads를 차트 형태로 확인할 수 있다.

    Logical Reads 탭 화면에서는 1분 단위의 Logical Reads를 차트 형태로 확인할 수 있다.

    Plan History 탭 화면에서는 같은 쿼리에 대해 Plan별 비교가 가능하다.

    SQL Trace 탭 화면에서는 조회 기간 동안의 SQL 수행 이력(Trace 정보)을 확인할 수 있다.

    SQL 수행 과거 이력 기한 선택

    SQL Full Text

    Plan Tree

    SQL 수행 이력 통계

    Summary

    Execute count

    Physical Reads

    Logical Reads

    Plan History

    SQL Trace

    참고

    SQL 수행 이력 수집에 사용하는 티베로 라이브러리 이슈로 일부 정보에 Machine, Module, Program, Username, OS User 항목이 수집되지 않을 수 있다.

    SQL trace 의 child number 가 0 인 경우는 다양한 이유로 SQL plan 할당에 실패 했을 경우이다. 그리고 SQL plan 생성을 실패하는 지점까지 수행 시간 자체가 사용자가 설정한 SQL_STAT_HISTORY_THRESHOLD 가 넘으면 SQL plan 생성을 실패한 SQL trace 를 수집하게 된다. 결론적으로 수집된 SQL trace 의 child number 가 0 인 경우 매핑되는 SQL plan 이 없으므로 SQL plan 을 볼 수 없다.

    Analysis 서비스 하위 메뉴에서 공통으로 사용되는 기능에 대해서 설명한다.

    Analysis의 하위 메뉴에 진입 시 공통적으로 보여지는 드롭다운 메뉴이다. 해당 드롭다운을 통해 모니터링 대상 인스턴스를 선택할 수 있다.

    Analysis 메뉴들 화면 좌측 상단의 드롭다운 메뉴를 클릭한다.

    Instance 드롭다운 메뉴를 클릭한다.

    드롭다운이 펼쳐지면 원하는 인스턴스를 선택하고, 해당 인스턴스에 대한 모니터링 정보가 화면에 나온다.

    Analysis의 하위 메뉴에서는 공통적으로 Period Selector를 제공한다. 사용자는 Period Selector를 통해 데이터 분석 대상 기간을 설정할 수 있다. 이때 Period 영역에서 기간을 설정하고, 오른쪽의 [VIEW] 버튼을 클릭하면 대상 기간의 데이터가 조회된다. 기본적으로 1시간 단위로 되어 있고 만약 특정한 기간이 필요하다면, Custom으로 하여 원하는 기간 구간에서 조회가 가능하다.

    기본적으로 차트 데이터의 단위는 분, 시, 일을 지원하며 데이터의 개수 120개를 기준으로 단위가 변한다.

    • 예시 1: 검색 범위 120분(2시간) 이하는 분 단위 데이터로 조회

    • 예시 2: 검색 범위 120분(2시간) 초과 120시간(5일) 이하는 시간 단위 데이터로 조회

    • 예시 3: 검색 범위 120시간(5일) 초과는 일 단위 데이터로 조회

    • 사례 1: 최소 검색 단위 [분], 차트 데이터는 기본 규칙을 따름

      • Performance Trend Alert Analysis

    • 사례 2: 최소 검색 단위 [시], 차트 데이터는 모두 시간 단위 제공

      • Invalid Object Tablespace Usage Filesystem Usage Temp Usage Undo Usage

    • 사례 3: 최소 검색 단위 [일], 차트 데이터는 모두 시간 단위 제공

      • Heatmap Trend

    • 예외 페이지: 각 페이지에서 period 관련 동작 설명

      • All Session Flow Segment Usage

    Performance Analysis
    History Analysis
    Usage Analysis

    공통 기능

    Instance

    Period Selector

    참고

    Performance trend overall 화면과 Heatmap trend 최초 화면은 default 시간으로 검색되어 제공한다.

    Period selector는 검색 범위에 따라 데이터의 검색되는 단위가 변하며, Analysis 하위 메뉴는 각각 상이한 규칙과 최소 검색 단위가 존재한다.

    검색 범위 및 차트 데이터 단위 기본 규칙

    하위 메뉴의 최소 검색 단위 및 차트 데이터 단위

    SID

    세션의 SID

    Serial#

    세션의 시리얼 번호

    User

    세션 사용자 이름

    Program

    세션의 프로그램 이름

    Module

    세션의 모듈 이름

    Segment ID

    사용 중인 세그먼트 ID

    Used/Total Size

    사용 중인 Undo 크기 현황

    Used Block

    사용 중인 Undo Blocks

    Used Rec

    사용 중인 Undo Records

    Recovery

    Recovery 중인 크기

    생성할 유저가 속할 그룹과 해당 그룹에서의 역할(Role)

    Password

    유저의 암호

    Mail Address

    유저의 이메일 주소

    Phone Number

    유저의 핸드폰 번호

    Date Format

    서비스 화면에 표시될 날짜 형식

    Description

    유저에 대한 설명

    SID

    세션의 SID

    Serial#

    세션의 시리얼 번호

    User

    세션 사용자 이름

    Program

    세션의 프로그램 이름

    Module

    세션의 모듈 이름

    Tablespace

    사용 중인 Temp 테이블스페이스 이름

    Used/Total Size

    사용 중인 Temp 크기 현황

    Extents

    Extent 수

    System Alert

    Alert 이력 확인

    Alert 이력을 확인

    Alert Events History

    Changed Plan Analysis 전체 화면

    설치 환경 세팅

    1. 도커(Docker) 혹은 파드맨(Podman) 설치

    1.1. 엔진 선택

    사용하고자 하는 엔진에 따라 도커 혹은 파드맨을 설치한다.

    • Docker 엔진을 사용할 경우

      • Docker-compose, Kubernetes 를 통해 SysMaster DB를 구동할 수 있다.

    • RHEL의 Podman 엔진을 사용할 경우

      • Podman-compose 환경을 통해 SysMaster DB를 구동할 수 있다.

    아래의 주소에서 도커 엔진 설치 방법 문서를 확인한 후 운영체제에 맞는 도커 엔진을 설치한다.

    설치 환경의 인터넷 연결 여부에 따른 설치 방법은 다음과 같다.

    • 인터넷 연결이 가능한 경우

      • "Install using the repository" 과정에 따라 설치한다.

      • 이때 별도의 버전을 명시하지 않고 가장 최신 버전을 설치할 것을 권장한다.

    이때 도커 엔진 설치 과정에서 최종적으로 설치되어야 하는 패키지는 docker-ce, docker-ce-cli, containerd.io, docker-compose-plugin이다.

    docker version 명령을 사용하여 정상적으로 도커/ 파드맨이 설치되었는지 확인한다.

    아래의 주소에서 설치 방법을 확인한 후 설치한다.

    파드맨 엔진 설치 과정에서 최종적으로 설치되어야 하는 패키지는 podman, Slirp4netns, podman-plugins이다.

    podman version 명령을 사용하여 정상적으로 도커/ 파드맨이 설치되었는지 확인한다.


    'Docker-compose', 'Kubernetes', 'Podman-compose' 중에서 하나만 선택하여 설치한다.

      • Docker 설치 시 docker-compose-plugin 패키지가 함께 설치된다. Docker가 정상적으로 설치되었을 경우 docker-compose 환경을 위한 별도의 추가 설치 과정은 필요 없다.

      • docker compose version 명령을 사용해 정상적으로 docker compose가 설치되었는지 확인한다.

    Period Selector

    Period Selector

    All Session Flow 페이지에서 Period Selector는 Chart Interval 기능이 추가되어있다. 공통 기능의 Period Selector는 조회 기간에 따라 Chart Interval이 동적으로 결정되지만 All Session Flow 페이지에서는 사용자가 Chart Interval을 지정할 수 있다.

    Chart Interval

    Chart Interval은 각각 sec, min, hour, day가 존재하고 선택한 Period가 Chart Interval로 표현할 수 있는 시간을 포함하는 경우 선택할 수 있다.

    참고

    아래는 Chart Interval로 표현할 수 있는 시간의 예시다.

    Period가 04-22 00:00 ~ 04-22 10:00 일때 sec, min, hour, day를 선택할 수 있다.

    Period가 04-22 01:00 ~ 04-22 10:00 일때 00:00 시가 포함되지 않아 DAY로 표현할 수 없어 sec, min, hour를 선택할 수 있다.

    Server Monitoring

    글로벌 내비게이션 바에서 [Realtime] > [Main Monitoring] > [Server Monitoring] 을 클릭하면 Server Monitoring 페이지가 열린다.

    Server Monitoring 페이지에서는 OS Level의 CPU, Memory의 System Resource 사용량과 Process의 CPU 및 Memory 사용량에 대한 정보를 보여준다. 이때 PID, User, CPU(%), Memory(%) 등 각 조건별로 필터링 기능을 제공하며 전체 프로세스가 리소스를 어느 정도 차지하고 있는지 전반적인 상태를 모니터링할 수 있다.

    Server Monitoring 페이지 오른쪽 상단의 [Refresh] 버튼을 클릭하면 실시간으로 CPU 사용량을 모니터링 할 수 있다.

    CPU Monitoring

    Server Monitoring 페이지 왼쪽 상단의 CPU 화면은 User, System 영역별 CPU 사용량과 현재 총 CPU 사용량을 차트로 보여준다.

    항목
    설명

    Server Monitoring 페이지 왼쪽 하단의 Memory 화면은 전체 Memory 크기와 현재 Memory 사용량을 차트로 보여준다.

    항목
    설명

    Current Process Usage 페이지은 각 프로세스의 CPU 및 Memory 리소스 사용량을 보여준다.

    항목
    설명

    Minute Chart

    Daily Hourly Chart에서 선택한 한 시간 동안의 분 단위 차트를 확인할 수 있다. 이때 해당 차트는 Daily Hourly Chart의 아래에 위치한다.

    Minute Chart

    Minute Chart bar를 클릭하면 원하는 메뉴로 이동이 가능하다.

    Go to Analysis

    각 버튼에 대한 설명은 다음과 같다.

    버튼
    설명

    Performance Analysis

    Performance Analysis에서는 성능과 관련된 각종 지표들을 확인할 수 있다.

    Overall 메뉴에서 장기간 그래프를 통해 추이를 확인 한 후, Time Slice 기능을 통해 특정 시점에서 발생한 모든 지표 정보를 복합적으로 확인 할 수 있다.

    Time Slice

    Analysis의 하위 메뉴별로 조회 기간을 설정할 수 있다. 화면 상단의 Time Slice 버튼을 누르면 Time Slice 생성창으로 이동한다.

    1. Time Slice를 할 구간을 선택한다.

    2. Time Slice로 구분할 Time Unit을 선택하고 View를 누른다.

    3. 구간 안에서 Time Unit으로 나누어진 Time Slice를 선택하면 해당 Time Slice에 대한 화면이 열린다.

    Physical Reads, Hard Parse Count 등 내가 관심 있는 지표를 어떤 SQL이 가장 많이 발생시켰는지 확인 할 수 있다.

    설정한 지표의 변화 추이를 Heatmap을 통해 확인하고, 더 상세히 분석하고자 하는 기간의 Performance Trend나 Top N Performance 페이지로 연계할 수 있다.

    TSC Monitoring

    글로벌 내비게이션 바에서 [Realtime] > [High Availability Monitoring] > [TSC Monitoring] 메뉴를 클릭하면 TSC Monitoring 화면이 열린다.

    TSC Monitoring 화면에서는 TSC 목록, 각 TSC 네트워크 구성, TSN을 통한 복구 현황 차트, Primary DB와 Standby DB 실시간 현황을 모니터링할 수 있다.

    자동 갱신 주기를 설정할 수 있다. [Refresh] 버튼을 통하여 즉시 갱신할 수 있다.

    TSC 목록

    TSC 목록

    TSC 목록을 확인할 수 있다.

    TSC Topology View

    TSC 네트워크 구성을 확인할 수 있다.

    [Overview] 버튼을 누르면 TSN 차트를 확인하여 복구 현황을 모니터링할 수 있다.

    Primary DB와 Standby DB의 현황을 테이블 형식으로 모니터링 할 수 있다.

    Primary Database, Standby Database에서 각 인스턴스 명을 클릭하면 우측 사이드 패널에서 Instance info를 확인 할 수 있다.

    다음은 Primary Database 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    다음은 Standby Database 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    Total Session Info

    Total Session Info 화면에서는 All Session Count에서 선택한 세션의 정보를 확인할 수 있다.

    Total Session Info 화면

    다음은 Total Session Info 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    User Name

    Instance 등록하기

    로그인 후 첫 화면인 Dashboard에서 import 버튼을 클릭하면 instance를 등록할 수 있다.

    아래 예시 화면은 인스턴스 등록 페이지이다.

    해당 페이지에서는 모니터링을 위한 인스턴스 연결 테스트 및 등록을 수행할 수 있으며, 현재 서비스에 적용된 라이선스 정보를 상단 License Info 영역을 통해 참고할 수 있다.

    항목
    설명

    새로 등록한 instance는 바로 화면에 반영되지 않고, 그룹에 instance를 할당한 후에 Dashboard에서 관제가 가능하다.

    Alert Event Analysis

    글로벌 내비게이션 바에서 [Analysis] > [History Analysis] > [Alert Event Analysis] 페이지를 클릭하면 Alert Analysis 페이지가 열린다.

    Alert Event Analysis 페이지에서는 SysMaster DB 8 제품의 사용자가 설정한 알림 및 시스템 알림 규칙 대한 알림 발생 이력을 확인할 수 있다. 또한 발생한 알림에 대한 확인 여부도 확인할 수 있다.

    User-created

    시간 범위를 설정하여 사용자 설정 알림 발생 정보를 차트로 조회하여 볼 수 있다.

    System

    시간 범위를 설정하여 사용자 설정 알림 발생 정보를 차트로 조회하여 볼 수 있다.

    User created 탭과 System 탭 차트의 특정 시간을 클릭하여 해당 시간의 알림 목록을 조회할 수 있다.

    항목
    설명

    All Session Flow

    All Session Flow 화면에서는 동일한 DB 사용자는 제외하고, DB 사용자별 전체 세션 갯수를 그래프로 확인할 수 있다. 이이때 오른쪽 상단의 차트 간격(Interval)과 집계 방식(Aggregation)을 드롭다운 메뉴로 선택하여 확인할 수 있다.

    All Session Flow 화면

    SQL Text

    SQL Text 화면에서는 New Plan List에서 선택한 SQL문에 대한 전체 구문을 확인할 수 있다.

    SQL Text 화면

    Add Layout

    [New Tab]에서 [Add Layout] 버튼을 클릭하여 Layout을 신규 생성할 수 있다.

    레이아웃 생성은 다음과 같은 프로세스로 진행된다.

    1. Layout Name

      • 레이아웃 이름을 입력한다. 해당 이름이 Instance Monitoring 페이지에 노출된다.

    2. Chart Index

      • 사용자가 실시간으로 모니터링할 지표를 선택한다.

      • Instance Monitoring에서 제공되는 모니터링 지표 목록은 를 참고한다.

    3. Selected Item

      • 사용자가 선택한 지표 목록을 확인하고, 각 지표 차트 옵션을 설정한다.

    4. Summary

      • 사용자가 선택한 지표 목록이 반영된 레이아웃 예시를 확인할 수 있다.

    5. Add

      • Add 버튼을 클릭하여 사용자가 직접 정의한 Layout을 생성, 해당 Layout Tab에 적용한다.

    Plan History Comparison

    Plan History Comparison 화면에서는 TimeStamp와 Child Number가 다른 동일한 SQL에 대해 Plan을 비 교할 수 있다. 이때 Plan에 대한 비교는 Plan Tree 형태와 Plan Text 형태로 확인할 수 있다.

    Plan History Comparison 화면 - Plan Tree 형태

    Plan History Comparison 화면 - Plan Text 형태

    Search SQL Text

    글로벌 내비게이션 바에서 [Analysis] > [History Analysis] > [Search SQL Text] 메뉴를 클릭하면 Search SQL Text 화면이 열린다. Search SQL Text 화면에서는 지정한 기간 동안의 SQL 목록을 확인할 수 있다.

    Search SQL Text 전체 화면

    SQL Detail

    Search SQL Text 화면의 SQL 목록에서 특정 열을 더블 클릭하면 해당 SQL의 상세 정보를 확인할 수 있 는 SQL Detail 화면이 열린다.

    Copy Layout

    Layout 목록에서 특정 Layout의 더보기 버튼 클릭 시 제공되는 Copy 기능을 통해 기존 Layout을 복사할 수 있다.

    [Copy] 클릭 시 복사 대상 Layout의 복사본이 생성되며, 사용자는 복사본 Layout의 이름을 직접 설정하여 저장할 수 있다.

    시스템 요구사항

    SysMaster DB 8.3의 공식지원 플랫폼 및 운영체제는 다음과 같다.

    구분
    제품 및 버전

    Tablespace Usage

    글로벌 내비게이션 바에서 [Realtime] > [Usage Monitoring] > [Tablespace Usage] 를 클릭하면 Tablespace Usage 페이지가 열린다.

    Tablespace Usage 페이지에서는 테이블스페이스 사용량 정보를 보여준다.

    모니터링 대상 DB의 테이블스페이스 사용량과 상태 정보를 확인할 수 있다. 이때 기본 수집 단위는 1시간이지만, 우 상단의 [Collect] 버튼을 이용하면 해당 시간에 실시간 정보를 수집해서 보여준다.

    항목
    설명

    Chart Type

    Instance Monitoring 페이지의 Layout Tab 영역에서 제공되는 모니터링 지표 차트의 종류에 대해 설명한다.

    인스턴스별 해당 지표의 실시간 값을 막대 그래프로 나타내는 차트이다.

    Line 또는 Area 차트로 전환이 가능하다.

    인스턴스별 해당 지표의 실시간 값을 꺾은선 그래프로 나타내는 차트이다.

    Bar 또는 Area 차트로 전환이 가능하며, 부가 기능을 통해 선 굵기를 사용자가 직접 설정할 수 있다.

    Session Info 탭

    현재 session의 상태 정보, session에서 수행중인 SQL 정보들을 보여준다.

    현재 session의 wait event 발생 정보이다.

    항목
    설명

    Tablespace Usage

    글로벌 내비게이션 바에서 [Analysis] > [Usage Analysis] > [Tablespace Usage] 메뉴를 클릭하면 Tablespace Usage 화면이 열린다.

    이 화면에서는 지정한 기간 동안의 테이블스페이스 이름별 크기의 변화량을 확인할 수 있다.

    다음은 Tablespace Usage 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    Layout Tab 기본 기능

    Instance Monitoring 페이지의 Layout Tab 영역에서 제공되는 기본 기능에 대해 설명한다.

    사용자 편의를 위해, Instance Monitoring 페이지에서는 Default Layout을 제공한다.

    Default Layout에 포함된 모니터링 지표 목록은 다음과 같다.

    • [System] CPU Usage

    • [Session] Session Count (Running, Active, Inactive)

    Invalid Object

    글로벌 내비게이션 바에서 [Analysis] > [History Analysis] > [Invalid Object] 페이지를 클릭하면 Invalid Object 페이지가 열린다.

    Invalid Object 페이지에서는 Invalid Objects Count 데이터와 Invalid Objects 상세 정보를 확인할 수 있다.

    지정한 기간 동안의 Invalid Objects Count 정보를 확인할 수 있다.

    Invalid Objects Count 차트에서 특정 데이터 클릭 시 해당 데이터 카운트에 포함된 전체 Invalid Object 정보를 제공한다. 이를 통해 사용자는 각 시간대별 Invalid Object 데이터의 상세 정보를 확인할 수 있다.

    Custom Area

    현재 모니터링 중인 그룹 내 인스턴스들의 각종 지표를 확인할 수 있다.

    커스터마이징을 통해 시스마스터에서 지원하는 모든 실시간 차트와 세션, 락 모니터링 테이블을 원하는 위치와 크기로 배치할 수 있다.

    차트를 클릭할 시 원하는 화면으로 이동이 가능하다.

    • 그룹 내 모든 인스턴스에서 발생하는 SQL 수행의 응답 시간 (Response Time)을 히트맵 형태로 표시한다.

    TPM Agent 기동 / 종료

    application.yml 파일 설정 완료 후 아래와 같은 순서로 TPM Agent를 환경을 설정한다.

    set.sh 스크립트 내용

    인자
    설명

    Daily Hourly Chart

    선택한 기간 하루 동안의 시간 단위 차트를 제공한다. 이때 Heatmap Trend 화면 상단의 [OS], [STAT], [WAIT(TIME)], [WAIT(COUNT)], [SESSIONS] 버튼을 사용해서 각 지표의 사용량에 대한 Overview를 확인할 수 있다.

    OS 관련 항목('CPU Idle', 'CPU Sys', 'Memory Usage' 등)의 사용량에 대한 시간 단위 차트를 조회한다.

    이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.

    Stat 관련 항목('Logical Reads', 'Physical Reads', 'Execute Count' 등)의 사용량에 대한 시간 단위 차트를 조회한다.

    로그인

    SysMasterDB 8에 접속하기 위해서는 웹 브라우저에 접속한 후 로그인을 해야 한다.

    로그인 화면에서 사용자 ID와 패스워드를 입력한 후 [SIGN IN] 버튼을 클릭한다. 이때 로그인에 성공하면 그룹 선택 화면으로 이동한다.

    SysMaster DB 8 설치 시 기본적으로 관리자 권한을 가지는 계정을 생성한다. 이때 기본으로 제공되는 관리자 계정의 아이디와 패스워드는 모두 admin이다.

    만약 로그인에 실패할 경우 "Login Failed" 다이얼로그를 통해 아이디와 비밀번호를 확인하라는 메시지를 출력하고, 5번 연속 실패할 경우 10분 뒤 로그인하라는 메시지를 출력한다.

    인터넷 연결이 불가능한 경우
    • "Install from a package" 과정에 따라 패키지 별 설치 파일을 별도로 배포해 설치한다.

    • 이때 각 패키지 별로 가장 최신 버전을 설치할 것을 권장한다.

    • 다음은 Centos 7, x86-64 기준의 설치 파일 경로 예시이다. https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

    Podman-compose
    • Podman-compose 는 podman 을 docker-compose 처럼 사용할 수 있게 해주는 툴이다.

    • Python 기반으로 만들어져 있어 pip를 사용해서 설치한다 sudo pip3 install podman-compose

    • 정상적으로 podman-compose가 설치되었는지 확인한다. podman-compose version

  • Kubernetes

    • 아래의 주소에서 Kubernetes 설치 방법을 확인한 후 운영체제에 맞는 Kubernetes를 설치한다. https://kubernetes.io/ko/docs/setup/production-environment/tools/

    • 추가적으로 아래의 주소에서 Kubectl 설치 방법을 확인한 후 운영체제에 맞는 Kubectl을 설치한다. https://kubernetes.io/ko/docs/tasks/tools/

  • 1.2. 도커(Docker) 엔진 설치

    참고

    리눅스의 경우 도커 엔진 설치 이후 sudo 명령어 없이 운영하기 위해 아래 주소를 참고하여 시스템 구성하는 것을 권장한다.

    https://docs.docker.com/engine/install/linux-postinstall/

    1.3 파드맨(Podman) 엔진 설치

    참고

    파드맨(Podman)은 rootless container 기능을 지원하여 sudo 명령어 없이 컨테이너를 운용할 수 있다. Linux Kernel 4.18 이하에서는 디스크 볼륨을 rootless container에 마운트 할 수 없기 때문에 Podman은 Red Hat Enterprise Linux 8 이상부터 지원한다.

    2. SysMaster DB 8 구동 플랫폼 설치

    Docker-compose

    https://docs.docker.com/engine/install/
    https://podman.io/get-started

    Top N

  • Change plan Analysis

  • Create Alert: Alert 를 생성 할 수 있다.

  • Instance Info: 모니터링 DB 인스턴스 및 장비에 관한 상세 정보를 제공한다.

  • TSC Monitoring
    Session Monitoring
    Lock Monitoring
    Tablespace Usage
    Alert Events 페이지

    Memory

    인스턴스의 현재 총 Memory 사용량(%)

    Failover

    Failover 된 Primary Instance일 경우, Failover 된 시점 표시

    Replication Mode

    Primary DB와 Standby DB 간 데이터 복제 동작 방식 표기

    (표기 가능한 값: PROTECTION, AVAILABILITY, PERFORMANCE)

    Role

    • PRIMARY

    • STANDBY

    • SNAPSHOT STANDBY

    • CASCADING STANDBY

    Log Transport

    로그 전송 모드

    • LGWR SYNC

    • LGWR ASYNC

    • ARCH ASYNC

    CPU

    인스턴스의 현재 총 CPU 사용량(%)

    Memory

    인스턴스의 현재 총 Memory 사용량(%)

    Last Received Log

    가장 최근에 Primary로 부터 전송 받은 Redo Log

    Last Applied Log

    가장 최근에 Standby에 적용(복구) Redo Log

    TSN Diff

    Primary Database와 TSN 차이

    Instance

    인스턴스 이름

    Current Log

    가장 최근의 Redo Log

    CPU

    인스턴스의 현재 총 CPU 사용량(%)

    Instance

    인스턴스 이름

    Status

    Standby 의 상태. Status가 여러개 일 경우 1개만 표기하고 +n 으로 표기,

    프라이머리 노드가 여러개일 경우 첫번째 노드와의 네트워크 상태가 표시된다.

    • 값 종류

      • PRIMARY NOT CONNECTED

      • PRIMARY CONNECTED, RECOVERY NOT STARTED

      • PRIMARY CONNECTED, STARTING RECOVERY

      • READ-ONLY STANDBY, RECOVERY IN PROGRESS

      • STANDBY, RECOVERY IN PROGRESS

      • READ-ONLY STANDBY, RECOVERY SUSPENDED

      • STANDBY, RECOVERY SUSPENDED

      • PRIMARY DISCONNECTED, FINISHING RECOVERY

      • Unknown

    Open Mode

    • MOUNT

    • RECOVERY

    • READ WRITE

    • READ ONLY

    • READ ONLY WITH APPLY

    Standby Database Recovery Overview

    Primary/Standby Database 목록

    Instance Alias

    인스턴스 이름 (카드에 표시되는 정보)

    IP Address

    관제 대상 DB의 접속 IP

    Port

    관제 대상 DB의 접속 포트 번호

    DB Name

    관제 대상 DB의 SID

    User ID

    관제 대상 DB의 사용자 이름

    Password

    관제 대상 DB의 사용자 패스워드

    TPM Agent ID

    인스턴스 ID

    Instance Color

    인스턴스 고유 색상 (차트에 그려지는 색상)

    참고

    인스턴스 등록 시 입력하는 TPM Agent ID와 TPM Agent의 설정 파일에 있는 ID는 동일해야 한다.

    주의

    LOG_REPLICATION_DEST_N = "hostname_N:port_N {LGWR SYNC|LGWR ASYNC|ARCH ASYNC}" 의 IP:PORT와 SysMaster DB 에 Standby 인스턴스 등록할 때 사용한 IP:PORT 가 다르다면 TSC 모니터링 화면의 topology 네트워크 구성이 올바르게 보이지 않는다.

    참고

    SysMasterDB에 관제 대상 DB 인스턴스를 등록하면, TPM Agent 기동 여부와 관계없이 SysMasterDB는 관제 대상 DB에 직접 접속하여 수집을 시작한다. 일부 수집 항목은 TPM Agent가 아닌 DB 직접 쿼리 방식으로 주기적으로 수집되므로, TPM Agent가 종료되어도 SysMasterDB의 DB 접속 세션은 유지된다. 관제 및 수집을 중지하려면 SysMasterDB에서 해당 인스턴스를 삭제해야 한다.

    Appendix

    Page Out

    Page Out 발생한 횟수

    Memory(%)

    프로세스 레벨의 Memory 사용률

    Time

    기동 후부터 현재까지 CPU를 사용한 시간

    Command

    프로세스의 OS Command

    CPU Count

    CPU 코어 수

    Run Queue

    현재 Run Queue 값

    Blocked Queue

    현재 Blocked Queue 값

    Memory

    총 메모리

    Used

    사용 중인 메모리

    Page In

    Page In 발생한 횟수

    PID

    프로세스의 OS PID 값

    User

    OS 사용자 이름

    CPU(%)

    프로세스 레벨의 CPU 사용률

    Memory Monitoring

    Current Process Usage

    참고

    TPM Agent 수집 주기의 영향을 받아 TPM Agent 수집 주기보다 빠르게 갱신하더라도 TPM Agent 수집 주기로 갱신이 이루어진다. 예를 들어 TPM Agent 에서 CPU, Memory, Process 수집 주기를 1분으로 했다면, Server Monitoring 화면 갱신을 1초마다 진행하더라도 데이터의 갱신은 1분마다 이루어지게 된다.

    Process 목록에서의 CPU 사용량은 하나의 코어에 대한 사용량으로 100%일 경우 하나의 코어를 전부 사용하는 것이며, 100%가 넘어가면 하나의 코어를 전부 사용하고 추가로 다른 코어도 사용한다는 의미이다. 따라서 Process 목록에 있는 CPU 사용량을 전부 더한 값과 CPU Monitoring 의 CPU 사용량과 다르다. CPU Monitoring 의 CPU 사용량은 전체 코어들에서 얼마나 사용되고 있는지에 대한 값이기 때문이다.

    Alert Trigger

    알람 트리거 이름

    Instance

    알림이 발생한 인스턴스 이름

    Confirm

    사용자 확인 여부

    User Comment

    알림 확인 시 사용자가 작성한 메시지 내용

    Alert Time

    알림이 발생한 시각

    Alert Name

    알림 이름

    Alert Level

    알림 레벨 (INFO, WARNING, ERROR)

    Alert Event 목록

    Docker-compose

    v2.40.2 이상

    Podman

    v4.4.1 이상, Linux Kernel 4.18을 사용하는 Linux Red Hat Enterprise Linux 8 이상부터 지원.

    Podman-compose

    v1.0.6 이상

    Kubernetes

    v1.17 이상

    관제 데이터베이스

    Tibero 6 FixSet06 이상 Tibero 7

    [참고] SysMasterDB의 Tibero 관제 연동은 Tibero 버전명뿐 아니라 서버 바이너리의 빌드 형상과 연동 라이브러리 간 호환성을 기준으로 한다. 동일한 Tibero 버전이라도 빌드 시점 및 적용 패치 내역에 따라 연동 라이브러리와 호환되지 않을 수 있다. 특히 2022년 이전 빌드 바이너리는 정상 관제를 보장하지 않으며, 기본 지원 대상에서 제외된다.

    관제 데이터베이스 운영 체제

    • Linux:

      • CentOS 7 (64-bit)

      • Red Hat Enterprise Linux 7 ~ 10 (64-bit)


    SysMaster DB 8.3를 설치하기 위해 필요한 하드웨어 및 소프트웨어의 요구 사항은 다음과 같다.

    구분
    사양

    CPU

    8 Core

    RAM

    32 GB

    저장 공간

    30 GB 이상 (수집 정보의 보관 주기(RETENTION_DAY)에 따라 일 당 50 GB 추가 필요)


    SysMaster DB 8.3의 관제 데이터베이스 대상 권장 패치는 다음과 같다.

    패치 번호
    패치 내용

    240373

    Program 이 PE_SLAVE 인 Session 에서 OS User 와 Machine 정보 누락 개선

    [참고] 해당 패치가 없다면 Program 이 PE_SLAVE 인 Session 에서 OS User 와 Machine 정보가 누락된다.

    276404

    티베로의 global view 조회 시 수행되는 내부 쿼리에 대해 수행 시마다 physical plan을 새로 생성하는 문제 개선

    [참고] SysMaster DB 8에서는 Lock 정보 수집을 위해 global view를 매초 조회한다. 해당 패치가 없는 경우 매초 특정 SQL에 대해 physical plan을 생성하여 [Analysis] > [Plan Analysis] 등에서 해당 SQL에 대해 조회 시 응답 없음 현상이 발생할 수 있다.

    279651f

    libtpmstat 라이브러리 생성

    [참고] 해당 패치가 없는 경우 libtpmstat 라이브러리를 TPM Agent 설치 시 함께 배포해야 한다. TPM Agent 8.1.3 이상은 하위 버전 패치인 279651e 이하 패치와 호환이 되지 않기에, 279651f 이상 패치가 필요하다. Tibero에 적용된 279651 패치 버전과 상관 없이, TPM Agent 빌드 시 사용한 279651 패치 버전과 라이브러리의 279651 패치 버전이 맞아야 한다.

    운영체제

    • Linux:

      • CentOS 7 (64-bit)

      • Red Hat Enterprise Linux 7 ~ 9 (64-bit)

      • Oracle Linux Server release 9.4

      • Rocky Linux release 8 ~ 9 (64-bit)

    • Windows:

      • Windows 10 (64-bit)

      • Windows Server 2022 (64-bit)

    • 아래(Docker 및 Podman) 지원 플랫폼 및 소프트웨어 요구 사항 설치를 지원하는 운영체제면 기동 가능

    Docker

    v28 이상

    1. 지원 플랫폼 및 운영체제

    Docker Engine 24버전 환경에서 컨테이너 다중 네트워크(endpoint) 연결 실패 문제가 확인되었으며, 해당 네트워크 처리 관련 이슈는 Docker Engine 28버전에서 수정되었다. 따라서 안정적인 기동을 위해 Docker Engine 28버전 이상 사용을 권장한다.

    참고

    '관제 데이터베이스'는 '관제 데이터베이스 운영 체제' 목록에 있는 운영 체제에 설치된 데이터베이스에 대해서만 관제가 가능하다.

    주의

    Docker Compose 2.40.2 버전 미만인 경우 Docker Compose에서 원격 OCI Compose 아티팩트 설정 값 검증 미흡으로 발생하는 경로 탐색 취약점이 있다. 따라서 2.40.2 버전 이상으로 업데이트를 권고한다.

    2. 하드웨어 및 소프트웨어

    참고

    총 Active Session 수 600개 (Active Session 수 60개 × 인스턴스 10대) 기준의 사양이다.

    3. 관제 데이터베이스 권장 패치

    테이블스페이스 이름

    Status

    테이블스페이스의 현재 상태

    Contents

    테이블스페이스 종류

    • Permanent

    • Undo

    Free/Total Size

    테이블스페이스 여유공간 현황

    Used/Total Size

    테이블스페이스 사용공간 현황

    Extent Management

    Extent Management 방식

    Allocation Type

    Extent Allocation 방식

    Segment Space Management

    Segment Space Management 방식

    Auto Extend On

    해당 테이블스페이스의 Data File 중 하나라도 Auto Extend 상태인지 여부

    Last 24 hours history 에서는 그리드(Grid) 형태로 현재까지의 사용량 정보를 확인하거나, 차트(Chart) 형태로 변화율 추이를 확인할 수 있다.

    항목
    설명

    Log Time

    수집 시간

    Free/Total Size

    테이블스페이스 여유공간 현황

    Used/Total Size

    테이블스페이스 사용공간 현황

    Segment Size 에서는 Last 24 hours history 에서 선택한 Log Time 내 세그먼트 타입별 크기를 확인할 수 있다. 이때 해당 정보의 수집 단위는 1시간이다.

    항목
    설명

    Segment Type

    세그먼트 종류 (Table, Index, Undo 등)

    Owner

    소유자 계정

    Segment Name

    세그먼트 이름

    Current Tablespace Usage

    Tablespace Name

    Last 24 hours history

    Segment Size

    참고

    세그먼트 크기가 클수록 부하의 영향을 많이 받으며, Tablespace Usage 페이지 오른쪽 상단의 [Collect] 버튼을 클릭해도 해당 정보는 수집하지 않고 매시간 정각에 수집된다.

    인스턴스별 해당 지표의 실시간 값을 영역 그래프로 나타내는 차트이다.

    Bar 또는 Line 차트로 전환이 가능하다.

    인스턴스별 해당 지표의 실시간 값을 누적 막대 그래프로 나타내는 차트이다.

    Grid 차트로 전환이 가능하며, 부가 기능을 통해 해당 지표의 범위값을 사용자가 직접 설정할 수 있다.

    인스턴스별 해당 지표의 실시간 값을 테이블 형태로 나타내는 차트이다.

    각 인스턴스별로 탭을 구분하여 해당 지표의 실시간 값을 제공하며, Stack Bar 차트로 전환이 가능하다.

    인스턴스별 해당 지표의 실시간 값을 원형 그래프로 나타내는 차트이다.

    각 인스턴스별로 탭을 구분하여 해당 지표의 실시간 값을 제공한다.

    인스턴스별 해당 지표의 실시간 값을 분산형 그래프로 나타내는 차트이다.

    부가 기능을 통해 해당 지표값의 조회 범위를 사용자가 직접 설정할 수 있다.

    Scatter 차트로 제공되는 Response Time 지표의 경우, 차트 내 드래그를 통해 원하는 영역을 선택할 수 있다.

    이 때, 드래그로 선택한 영역 내의 각 포인트에 해당하는 SQL Trace 정보가 Long SQL List 모달을 통해 제공된다.

    Long SQL List 모달의 각 칼럼은 다음과 같다.

    칼럼명
    내용

    Instance

    인스턴스 명

    SID

    세션의 ID

    Serial#

    세션의 시리얼 번호

    Long SQL List 모달의 테이블 내 각 항목 클릭 시, 해당 SQL Trace가 수행된 Session Detail 페이지로 이동한다.

    추가로, Super Admin 또는 Admin 권한을 가진 사용자에게는 Long SQL List 모달에 Download 버튼이 제공된다.

    해당 클릭하면, 테이블 데이터를 csv 형식의 파일로 내려받을 수 있다.

    일반 사용자에게는 기본적으로 Download 버튼이 표출되지 않으나, Admin 사용자에 의해 Data Export 권한을 부여받은 경우에는 해당 기능을 사용할 수 있다.

    Bar

    Line

    Area

    Stack Bar

    Grid

    Pie

    Scatter

    현재 session에서 발생한 wait event로 대기한 시간


    항목
    설명

    SQL ID

    세션이 수행 중인 SQL의 SQL ID

    Prev Child Number

    세션이 이전에 수행했던 SQL의 Child Number 값

    Child Number

    세션이 수행 중인 SQL의 Child Number 값


    현재 session에서 수행 중인 SQL 전문을 보여준다.


    현재 session에서 수행 중인 SQL에 대한 Plan을 확인할 수 있는 화면이다. 이때 SQL Plan을 Tree 구조로 보여준다.


    현재 session 상태 지표이다.

    상태 지표 별 항목은 다음과 같다.

    항목
    설명

    ∑

    세션의 Statistics 지표별 누적 값

    Delta

    세션의 Statistics 지표별 새로고침 전, 후의 변경 값

    Value/Sec

    Delta 값을 새로고침한 시간(초 단위)으로 나누어 계산한 값

    상태 지표 목록은 다음과 같다.

    Statistics 지표 이름
    설명

    CONSISTENT_BLOCK_GETS_READONLY_PIN

    Readonly block에 대해 consistent block get을 수행한 횟수

    TOTAL_PARSE_COUNT

    Parse 총 횟수

    REDO_ENTRIES

    Redo Entries의 개수

    (Redo Entries : 세션이 Log Buffer에 기록한 Redo 레코드)

    Wait event

    현재 session에서 발생한 wait event 번호

    Wait event 정보

    Wait time

    Session이 수행한 SQL 기본 정보

    SQL Full Text

    Plan Tree

    Session statistics

    Tablespace Name

    테이블스페이스 이름

    Contents

    테이블스페이스에 저장하는 데이터 종류

    • TEMPORARY

    • PERMANENT

    • UNDO

    Earlier Time

    이전 시점

    Later Time

    이후 시점

    Earlier Free/Total Size

    Tablespace Usage 에서 특정 데이터 클릭 시 해당 테이블스페이스의 시간별 크기 변화를 상세하게 확인할 수 있다. 이때 오른쪽의 그래프를 통해 크기 변화량을 한눈에 파악할 수 있다.

    Tablespace Info

    다음은 Tablespace Info 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    Log Time

    수집 시간

    Tablespace Name

    테이블스페이스 이름

    Used

    사용량

    Tablespace Usage

    Tablespace Usage 전체 화면
    Tablespace Usage

    Tablespace Info

    [Session] Long Running Session Count

  • [Session] Lock Waiter Session Count

  • [System] TPS

  • [Stat] Buffer Cache Hit

  • [System] TSM Usage (Total)

  • [System] PGA Usage (Total)

  • [Stat] Redo Log Size

  • [Stat] Physical Reads

  • [Stat] Logical Reads

  • [Stat] Hard Parse Count

  • Layout Tab 영역 우상단의 설정 아이콘 클릭 시, Auto Refresh 여부와 초(sec) 단위 간격을 사용자가 직접 설정할 수 있다.

    Layout Tab 영역 상단 탭 추가 아이콘 클릭 시, 새로운 Layout Tab이 추가된다.

    사용자는 새 탭에 기존 Layout 또는 직접 생성한 새 Layout을 적용할 수 있다.

    Layout Tab 영역 상단 Save 버튼 클릭 시, 현재 탭에 적용된 Layout 변경 상태가 저장된다.

    사용자가 생성한 Layout에 한해 해당 기능을 사용할 수 있으며, Custom 권한이 없는 일반 사용자는 해당 기능을 사용할 수 없다.

    Default Layout의 경우, Save 기능이 제공되지 않으므로 해당 버튼이 다음과 같이 비활성화된다.

    Layout Tab 영역 상단 Cancel 버튼 클릭 시, 현재 탭에 적용된 Layout을 기존 상태(최근 저장된 상태)로 되돌린다. 이 때, 변경된 사항은 저장되지 않는다.

    Layout Tab 영역 상단의 인스턴스 목록에서 특정 인스턴스 이름 클릭 시, 해당 인스턴스가 현재 Layout Tab에서 비활성화된다. 해당 인스턴스 이름을 한 번 더 클릭하면, 다시 해당 인스턴스 그래프가 차트에 표출된다.

    Default Layout

    Default Layout 적용 예시

    Auto Refresh

    Layout Tab 추가

    Layout 저장

    Layout 되돌리기

    인스턴스 비활성화

    다음은 Invalid Objects 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    Log Time

    Invalid Object 데이터의 수집 시각

    Owner

    Invalid Object의 소유자

    Object Name

    Invalid Object의 Object 이름

    Invalid Objects Count

    Invalid Objects

    Y축은 응답 시간이며, 히트맵의 색깔은 해당 응답 시간에 해당하는 SQL의 숫자를 나타낸다.

  • 더보기 메뉴를 클릭하여 Y축 Time Range를 설정하고 저장 할 수 있다.

    • Starting Point : 차트에 보여질 SQL들의 최소 Elasped time 값

    • Cell Height: 차트의 Y축인 각 Cell의 Elasped time을 설정하는 값

    • 히트맵 영역을 드래그하거나 셀을 클릭하여 실제 SQL 수행 내역을 별도 모달로 확인할 수 있다.

    • Instance Name을 클릭할 시 해당 인스턴스에 대한 다른 화면으로 갈 수 있다.

    • SID를 클릭할 시 해당 SID에 대한 Session Detail 화면으로 이동한다.

    Long SQL List의 칼럼 내용은 Chart Type을 참조하면 된다.

    • 각 인스턴스별로 TPS (Transaction Per Second)를 보여준다.

    • 그룹 내 각 인스턴스 당 수행되고 있는 세션들의 Elapsed Time을 시간 구간별로 나눠서 제공한다.

    • Response Time 기준으로 4개의 구간에 대한 구간값을 정의할 수 있다.

    • 더보기 버튼을 클릭하여 시간 구간을 커스터마이징하고 저장할 수 있다.

    • 실시간 Running Session / Active Session / Lock Tree 현황을 테이블 형태로 표시한다.

    • 각 행의 SID를 클릭하면 Session Detail 및 SQL Detail 페이지로 이동하여 확인할 수 있다.

    • 최대화 버튼을 눌러 확장할 수 있으며, 확장하기 전에는 Elapsed Time 기준 10개 항목, 확장 후에는 50개 항목이 표시된다.


    Custom 영역을 우클릭하여 Add Chart 메뉴를 호출할 수 있으며, Add Chart를 통해 Custom 영역에 차트를 추가할 수 있다.

    이미 존재하는 차트는 하이라이트 되어 표시된다.

    Recommend 섹션에서 선택하거나, All 섹션에서 시스마스터에서 제공하는 모든 실시간 차트 중에서 Dashboard에 표시할 차트를 선택할 수 있다.

    각 차트 컴포넌트의 X 버튼을 눌러 차트 컴포넌트를 삭제할 수 있으며, 차트의 위치나 크기를 드래그하여 조정할 수 있다.


    그룹 내 Admin이상의 권한 혹은 Custom Privilege 가 부여되어 있을 경우 Save 버튼을 통해 Custom Area의 변경 사항을 저장할 수 있다.

    Reset 버튼을 누르면 변경 사항을 되돌린다.

    Custom Area 기본 레이아웃

    Response Time

    TPS

    Long Running Session Count

    Table

    참고

    • Running Session: Status가 RUNNING 상태인 세션

    • Active Session: Status가 ROLLING_BACK / TX_RECOVERING / SESS_CLEANUP / CLOSING 상태인 세션

    커스터마이징

    변경 사항 저장

    참고

    수정한 모든 내용(Card View, Custom Area)은 그룹 내 모든 사용자에게 공유된다.

    인자
    설명

    {Monitoring_DB_Path}

    관제 데이터베이스의 경로를 입력

    {Monitoring_DB_SID}

    관제 데이터베이스의 SID를 입력


    tpmctl.sh 명령어는 아래와 같으며, help로 터미널에서 사용법 확인이 가능하다.

    명령어
    설명

    ./tpmctl.sh [-p port] up

    TPM Agent 실행, -p 옵션을 통하여 jvm 디버그 포트들을 지정할 수 있다. 기본적으로 사용 가능한 포트를 찾으나, 해당 환경에서 사용 가능한 포트를 찾지 못하여 프로세스 실행이 되지 않는다면 해당 옵션을 사용하여 수동으로 포트를 지정할 수 있다.

    ./tpmctl.sh down

    TPM Agent 종료

    ./tpmctl.sh help

    TPM Agent 도움말 출력


    Java TPM Agent에서 libtpmstat.so를 사용하기 위하여 필요한 라이브러리이다.


    Tibero Down 이후 바로 Tibero Boot를 위해서 TPM Agent Down이 필요하다. TPM Agent가 참조하고 있는 Tibero Shared Memory를 해제해야 하기 때문이다.

    ulimit -c unlimited
    . set.sh
    if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
        TARGET="$JAVA_HOME/bin/tpmagent"
    
        # 하드링크 시도, 실패하면 복사
        if ln -f "$JAVA_HOME/bin/java" "$TARGET" 2>/dev/null; then
            echo "Hardlink created: $TARGET"
        elif cp -p "$JAVA_HOME/bin/java" "$TARGET"; then
            echo "Copied binary to: $TARGET"
        else
            echo "WARNING: Failed to create $TARGET"
            echo "         This may be a permission issue. Please check write access to $JAVA_HOME/bin."
            echo "         You can start TPM Agent, but in 'top'/'topas', process name will appear as java."
        fi
        # 실행 가능 확인
        if [ -x "$TARGET" ]; then
          echo "Installed $TARGET"
        fi
    else
        echo "ERROR: JAVA_HOME not set or java not found in \$JAVA_HOME/bin"
    fi
    
    # 사용자 환경변수 설정
    export TPMAGENT_HOME={TPM_Agent_Home_Path}
    export PATH=$TPMAGENT_HOME:$PATH
    export LD_LIBRARY_PATH=$TPMAGENT_HOME:$LD_LIBRARY_PATH
    # 기존 실행 중이던 Agent가 있다면, 종료 후 실행
    export BOOT_WITH_AUTO_DOWN_CLEAN=true
    export ENABLE_DEBUG=false
    export ENABLE_GC_LOG=false
    # Agent 의 java heap 메모리 설정. 2000 session 기준 1000m. 이후 1000 session 마다 200m 추가 권장
    export JAVA_MIN_HEAP_SIZE=1000m
    export JAVA_MAX_HEAP_SIZE=1000m

    {TPM_Agent_Home_Path}

    "java_tpmagent_dist_{version}.tar.gz" 압축 파일 해제 디렉터리 경로

    TPM Agent 환경 설정

    1.1. 코어 덤프 파일 최대 사이즈 설정

    1.2. TPM Agent 환경 변수 설정

    참고

    위 스크립트는 위에 두 줄인 바이너리 실행 PATH 설정과 TPM Agent 라이브러리 경로 LD_LI BRARY_PATH 설정 그리고 환경 변수 설정들을 기본적으로 제공하는 템플릿이다. 환경에 맞게 직 접 스크립트를 수정하여 TPM Agent 실행을 하면 된다.

    참고

    하드링크를 사용하는 이유는 top, topas 등 명령어에서 프로세스명을 치환하여 TPM Agent 프로세스를 쉽게 확인하기 위한 용도이며, 실패해도 Tibero 모니터링에는 영향이 없다.

    export TB_HOME={Monitoring_DB_Path}
    export TB_SID={Monitoring_DB_SID}
    export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
    export PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin

    1.3. Tibero 환경 변수 설정

    기동, 종료 및 기타 명령어

    libJNITpmStat.so 라이브러리

    참고

    tpmagent.jar 와 함께 있어야하므로, 배포된 압축파일을 압축해제하여 하위의 lib 경로 아래에서 실행 하고자 하는 os 버전에 해당하는 libJNITpmStat.so 파일을 tpmagent.jar 와 같은 경로에 복사해야한다.

    주의

    Tibero 버전명 또는 코어셋명만으로 연동 라이브러리의 호환 여부를 판단할 수 없다. 연동 라이브러리(libtpmstat.so)는 Tibero 서버와 공유 메모리 구조체가 일치해야 정상 동작하므로, 동일한 Tibero 버전이라도 빌드 시점, 직반 패치 내역, 컴파일 옵션 등에 따라 호환되지 않을 수 있다. 따라서 과거 빌드 바이너리 또는 별도 패치가 적용된 바이너리를 사용하는 경우, 관제 연동 전 동일한 Tibero 형상 기준으로 라이브러리를 빌드하고 호환 여부를 확인해야 한다.

    libJNITpmStat.so 파일이 사용하는 libtpmstat.so 라이브러리 버전이 현재 Tibero 바이너리 버전과 맞지 않다면, 기존 TPM Agent 와 동일하게 SIGSEGV 문제 등 오류가 발생하여 프로세스가 실행되지 않는다. 각 JVM 벤더별로 생성되는 오류 관련 파일 종류는 다르나 core, jitdump, javacore 등의 파일 들이 생성될 수 있으므로 해당 파일 생성시 libtpmstat.so 라이브러리 버전을 확인해야한다.

    Tibero Reboot시 주의 사항

    주의

    TPM Agent가 참조하고 있는 Tibero Shared Memory를 해제하기 위해서는 Tibero Down을 감지해야 하는데 감지 주기는 매 수집 주기와 동일하다. 따라서 사용자의 수집 주기 설정이 길게 되어있거나 TPM Agent 자체가 느려지는 경우 등 Tibero Down 감지 자체가 늦어질 경우 Tibero Down을 하고 다시 Tibero Boot가 가능한 시점이 지연되게 된다. 이와 같이 Tibero Down 감지가 늦어져 Tibero Boot 가능 시점이 지연되는 것을 방지하기 위해서는 TPM Agent Down을 진행하고 Tibero Boot를 하면 된다.

    이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.
    Daily Hourly Chart - STAT - 리소스 선택

    Wait Time 관련 항목('WE_JC_BUF_DISK_READ_TIME', 'WE_BUF_FREE_TIME' 등)의 사용량에 대 한 시간 단위 차트를 조회한다.

    Daily Hourly Chart - WAIT(TIME)

    이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.

    Daily Hourly Chart - WAIT(TIME) - 리소스 선택

    Wait Count 관련 항목('WE_JC_BUF_DISK_READ_COUNT', 'WE_BUF_FREE_COUNT' 등)의 사용량 에 대한 시간 단위 차트를 조회한다.

    Daily Hourly Chart - WAIT(COUNT)

    이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.

    Daily Hourly Chart - WAIT(COUNT) - 리소스 선택

    Sessions 관련 항목('Active Session', 'Lock Waiter Session')의 사용량에 대한 시간 단위 차트를 조회한다.

    Daily Hourly Chart - SESSIONS

    이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.

    Daily Hourly Chart - SESSIONS - 리소스 선택

    OS

    STAT

    Daily Hourly Chart - OS
    Daily Hourly Chart - OS - 리소스 선택
    Daily Hourly Chart - STAT

    WAIT (TIME)

    WAIT (COUNT)

    SESSIONS

    Role

    그룹에서 해당 유저의 역할(Role)을 지정한다.

    Description

    그룹에 대한 설명을 작성한다.

    Performance Trend

    Analysis Performance Trend 메뉴의 메인 화면으로 이동한다. 해당 메뉴에 대한 자세한 내용은 “4.2. Performance Trend”를 참고한다.

    Top N

    Top N Performance 메뉴의 메인 화면으로 이동한다. 해당 메뉴에 대한 자 세한 내용은 “4.3. Top N Performance”를 참고한다.

    사용자 이름

    OS User

    OS 이름

    Machine

    연결된 세션의 호스트 이름

    Terminal

    연결된 세션의 터미널(TTY) 정보

    Program

    세션의 프로그램 이름

    Module

    dbms_application_info.set_module로 지정된 모듈의 이름

    Type

    세션의 타입

    • WTHR : Working thread

    • CTHR : Control thread

    • LGWR : Log writing process

    • CKPT : Checkpoint process

    • LARC : Log archive

    • AGENT : Sequence process

    • MTHR : Monitoring process

    • DBWR : Datablock writing process

    • LNW : Log network writing process

    Logon Time

    세션의 로그온 시간

    참고

    Session 정보 수집에 사용하는 티베로 라이브러리 이슈로 일부 정보에 User Name, Schema Name, OS User, Machine, Terminal, Program, Module 등 항목이 수집되지 않을 수 있다.

    참고

    Time Unit 값은 1~99 자연수만 입력 가능하다.

    Top N Performance

    Heatmap Trend

    참고

    Tibero Wait Event 지표가 Count는 0 이상이지만 Time은 0 으로 표기되는 경우

    티베로 라이브러리에서 수집되는 Wait Event Time 은 nanosecond 단위까지 발생하지만 지표 집계와 출력은 microsecond 단위로 이루어진다. 따라서 nanosecond 단위의 Wait 만 발생했을 경우 Wait Count가 0보다 크더라도 Wait Time이 0으로 출력 될 수 있다.

    Performance Trend

    참고

    사용자는 브라우저를 종료하거나, Global Navigation Bar (GNB)의 Profile을 통해 로그아웃할 수 있다.

    별도로 로그아웃하지 않은 경우, 해당 사용자 세션은 로그인 시점으로부터 최대 1년까지 유지된다.

    Login Failed
    Dashboard 바로가기
    Realtime 바로가기
    Analysis 바로가기
    Settings 바로가기
    "Instance Monitoring"
    Appendix 바로가기
    Kill Session'
    Lock Monitoring
    High Availability Monitoring
    Analysis
    Performance Analysis
    History Analysis
    Usage Analysis
    Report

    목차

    • 시스템 요구사항

    • 설치 환경 세팅

    • 배포 파일 구성

    설치 및 파라미터 설정

    TPM Agent를 설치하는 과정은 다음과 같다. 단, 반드시 관제 데이터베이스를 설치한 계정과 동일한 OS 계정으로 진행해야 한다.

    1. 설치 파일 배포

    관제 데이터베이스가 위치한 서버에 "tpmagent_dist_{version}.tar.gz" 압축 파일을 배포한 후 압축을 해제한다.

    tar -zxvf java_tpmagent_dist_{version}.tar.gz

    참고

    설치 파일 압축 해제 시 150MB 정도이다. 해당 공간만큼 확보한 이후에 압축 해제를 해야 한다. 이후 에 운영 시에는 로그 로테이션 설정에 따라 용량을 확보하면 된다.

    로그 파일 로테이션이란 기존에 로그를 적재하던 로그 파일을 아카이빙하고 새로운 로그 파일을 생 성하여 적재하는 것이다. 기본적으로 매 24시간 또는 한 파일의 사이즈가 50MB를 넘었을 때 새 로그 파일을 생성한다. 또한 로그 파일을 최대 7개까지 저장하는 것이 기본 설정이며, 7개가 넘어가게 되 면 오래된 로그 파일부터 삭제된다. 따라서 기본 설정인 상태에서 시간 트리거만 발생했을 때는 약 1주일 분량의 로그를 보관하며, 파일 사이즈 트리거만 발생했을 때 약 350MB 분량의 로그를 보관한 다. 그러므로 기본 설정인 상태에서 모든 로그를 보관하기 위해서는 실행 파일과 로그 파일을 합쳐 약 500MB 이상의 공간을 확보해야 한다.


    2. application.yml 파일 설정

    "java_tpmagent_dist_{version}.tar.gz" 압축 파일을 해제한 디렉터리에 application.yml 파일을 아래와 같이 작성하여 설정을 적용한다. yml 문법에 맞게 각 파라미터들의 값을 조정하여 설정한다.

    agent-config:
      id: "AAA1"
      ip: "192.1.3.225"
      port: 8292
      freq: 1000
      charset: "utf-8"
      cpu-mem-proc-freq: 5000
      disk-freq: 5000
      sessioninfo-freq: 5000
      dbsysinfo-freq: 5000
      sqltrace-freq: 5000
      sqltrace-queue-size: 10
      sqltrace-elapsed-time-threshold: 100
      sqltrace-monitoring-freq: 10
      sqltrace-monitoring-thread-per-session-count: 500
    log:
      level: INFO
      rotate-time-interval: 24
      rotate-file-size: 50MB
      max-log-file-number: 7
      path: logs/

    해당 과정에서 설정하는 파라미터에 대한 설명은 다음과 같다.

    카테고리
    파라미터
    설명
    필수 여부

    Tibero에서 지원하는 문자 집합은 다음과 같다.

    • ASCII

    • EUC-KR

    • MSWIN949

    • UTF-8


    "java_tpmagent_dist_{version}.tar.gz" 압축 파일을 해제한 디렉터리에 set.sh 파일에 적용시킬 환경 변수들이 있으며, 아래와 같이 작성하여 설정을 적용한다.

    해당 과정에서 설정하는 환경변수에 대한 설명은 다음과 같다.

    환경 변수
    설명
    필수 여부

    Top N Performance

    글로벌 내비게이션 바에서 [Analysis] > [Performance Analysis] > [Top N Performance] 메뉴를 클릭하면 Top N Performance 화면이 열린다.

    Top N Performance 화면에서는 검색 기간 동안에 상위에 존재하는 SQL에 대해 확인할 수 있다.

    이때 Category와 Item을 설정하면 선택한 Item에 대해 Value를 확인할 수 있다. 또한 Category에서 값을 선택하여 더블 클릭을 하면 SQL에 대한 정보를 확인할 수 있고, SQL을 선택하여 더블 클릭하면 SQL Detail 화면으로 연계된다.

    다음은 탭 화면의 각 영역에 대한 설명이다.

    Category

    데이터 집계 기준으로 'Machine', 'Module', 'Program', 'Username', 'OS user'가 있으며 'SQL' 선택 시 집계 기준을 설정하지 않는다.

    Category 선택

    집계 항목으로 'Logical Reads', 'Physical Reads', 'Redo Entries', 'Execute Count' 등이 있다.

    Category와 Item 선택을 통해 모니터링 하고자 하는 기간에서의 성능 지표를 확인할 수 있다. 이때 영역 오른쪽 상단의 콤보박스를 통해 SQL Category를 제외한 Category에 대해 정렬 리스트의 개수(ALL / Top 20 / Top 30 / Top 50)를 지정할 수 있다.

    다음은 Category / Module 영역에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    Category / Module에서 발생한 SQL 중 Item(Logical Reads) 값(Value)이 높은 순서대로 출력한다. 이 때 해당 SQL을 더블 클릭하면 SQL Detail 화면으로 넘어간다.

    다음은 MODULE / SQL 영역에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    Filesystem Usage

    글로벌 내비게이션 바에서 [Analysis] > [Usage Analysis] > [Filesystem Usage] 메뉴를 클릭하면 Filesystem Usage 화면이 열린다.

    Filesystem Usage 전체 화면

    Filesystem Usage

    이 화면에서는 지정한 기간 동안의 파일 시스템 이름별 서버에 마운트된 크기의 변화량을 확인할 수 있다.

    Filesystem Usage

    다음은 Filesystem Usage 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    Filesystem Usage 에서 특정 데이터 클릭 시 해당 파일 시스템의 시간별 크기 변화를 상세하게 확인할 수 있다. 이때 오른쪽의 그래프를 통해 크기 변화량을 한눈에 파악할 수 있다.

    다음은 Filesystem Info 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    Session Monitoring

    글로벌 내비게이션 바에서 [Realtime] > [Main Monitoring] > [Session Monitoring] 를 클릭하면 Session Monitoring 페이지가 열린다.

    Session Monitoring 페이지에서는 관제 대상 DB에서 수집 agent를 통하여 직접 세션 정보를 조회한 화면으로, 현재 연결되어 있는 세션별 logical reads, physical reads, execute counts, hard parse 등 session의 현 상황을 모니터링한 정보를 보여준다.

    SID, user name, program 등 각 컬럼별로 filtering 기능을 제공하며, session 상세보기로 연계하여 각 session의 세부 정보를 모니터링할 수 있다. Configurable Privileges 중 선택한 인스턴스에 대해 [Kill Session] 권한이 부여된 사용자는 해당 인스턴스의 세션을 종료할 수 있다.

    관제 대상 DB의 각 session 정보를 테이블 형식으로 보여주고, last update를 명시하여 현재 어떤 시간의 정보인지 확인할 수 있다.

    ./tpmctl.sh version

    TPM Agent 버전 출력

    ./tpmctl.sh libversion

    TPM Agent 이 사용하는 TPM Stat 라이브러리 빌드 패치 목록과 Tibero의 패치 목록 출력

    SQL ID

    SQL의 SQL ID

    Child Number

    SQL ID의 Child Number 값

    SQL Text

    수행된 SQL 전문

    Elapsed Time

    수행된 SQL의 Elapsed Time

    Machine

    연결된 세션의 호스트 이름

    Module

    dbms_application_info.set_module로 지정된 모듈의 이름

    Program

    세션의 프로그램 이름

    User Name

    현재 사용자 이름

    OS User

    연결된 세션의 OS 계정 이름

    CPU Time

    CPU 사용 시간

    Logical Reads

    Logical Reads 값

    Physical Reads

    Physical Reads 값

    Execute Counts

    Execute Count 값

    Redo Entries

    Redo Entries 값

    Hard Parse

    Hard Parse 값

    Cluster Wait

    Cluster Wait로 대기한 시간

    IO Wait

    IO Wait로 대기한 시간

    Redo Wait

    Redo Wait로 대기한 시간

    Standby Wait

    Standby Wait로 대기한 시간

    Redo TAC Wait

    Redo TAC Wait로 대기한 시간

    Resource Wait

    Resource Wait로 대기한 시간

    SQL Wait

    SQL Wait로 대기한 시간

    SQL TAC Wait

    SQL TAC Wait로 대기한 시간

    Recovery Wait

    Recovery Wait로 대기한 시간

    Recovery TAC Wait

    Recovery TAC Wait로 대기한 시간

    DDL Wait

    DDL Wait로 대기한 시간

    PSM Wait

    PSM Wait로 대기한 시간

    Internal Wait

    Internal Wait로 대기한 시간

    DD Wait

    DD Wait로 대기한 시간

    XA Wait

    XA Wait로 대기한 시간

    Backup Wait

    Backup Wait로 대기한 시간

    Session Wait

    Session Wait로 대기한 시간

    Space Wait

    Space Wait로 대기한 시간

    Oracle Linux 8 ~ 10 (64-bit)
  • Rocky Linux 8 ~ 10 (64-bit)

  • ProLinux 7.5 (64-bit)

  • AIX 7.2 (64-bit)

  • [참고]

    • C++11 지원 컴파일러

    • gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) 이상

    • GLIBCXX_3.4.19 이상

    • GLIBC_2.17 이상

  • 웹 브라우저

    Chrome (최신 버전 사용 권장)

    281081

    V$TEMPSEG_USAGE 뷰의 SESSION_NUMBER 컬럼 값 표기 잘못되는 문제 개선

    [참고] 해당 패치가 없는 경우 [Realtime] > [Usage Monitoring] > [Temp Usage], [Analysis] > [Usage Analysis] > [Temp Usage] 메뉴에 부정확한 정보가 표출될 수 있다.

    304981b

    SQL Trace 정보 수집 시 machine, OS user 추가 수집

    [참고] 해당 패치가 없는 경우 SQL Trace 정보에서 OS User 와 Machine 정보가 부정확하게 표출될 수 있다. 279651f 패치 선적용이 필요하며, 279651e 패치 이하 패치와는 호환되지 않는다.

    307175a

    SQL Trace 정보 수집 시, 이미 닫힌 세션의 경우 수집되지 않는 문제 수정

    [참고] 해당 패치가 없는 경우 세션이 자주 열리고 닫히는 환경의 경우에는 SQL Trace 정보를 상당히 누락하여 수집하게 된다.

    328607b

    Wait count, wait time 정보 수집 시, wait event 의 wait count, time 보정 문제 수정 [참고] 해당 패치가 없는 경우 wait time과 wait count의 값이 부정확하게 표출될 수 있다.

    304770a

    TSC 모니터링 전용 패치 [참고] 해당 패치가 없는 경우 아래 정보들이 V$DATABASE 뷰에 없어 primary와 standby가 구분되지 않는 등 TSC 모니터링 관련 정보들이 부정확하게 보여진다.

    338513a

    실제 TPR 연동에 필요한 패치로, 서버 패치 없이 패키지 생성 스크립트만 실행하면 된다.

    338594a

    TPR 연동 중 TPR 리포트 파일이 티베로 서버에 생성되는데, 이를 삭제해주는 티베로 패키지의 버그를수정한 패치이다.

    [참고] 해당 패치 없어도 TPR 연동 기능은 동작하지만 리포트 파일이 서버에 쌓여서 주기적으로 삭제가 필요하다.

    리포트 파일 수동으로 삭제 방법 : 주기적으로 다음과 같이 .tpr 로 시작하는 리포트 파일 삭제.

    rm -f .tpr*

    149894l

    해당 패치가 없는 티베로 6에서 지원하지 않는 쿼리를 TPR 스냅샷 조회시 사용하고 있어 해당 패치가 없으면 해당 패치가 없는 티베로 6에서는 조회가 되지 않는다.

    250728f

    Standby에서 V$INSTANCE 뷰를 조회할 수 있도록 해주는 패치. 해당 패치가 없으면 해당 인스턴스가 클러스터링이 되지 않는다.

    339899a

    DB 비정상 종료 상태 판단 로직 개선

    [참고] 해당 패치가 없는 경우 kill -9 등 외부 요인으로 DB가 비정상 종료되었을 때, TPM Agent에서 DB 종료 여부가 정확히 판단되지 않을 수 있다.

    1) OPEN_MODE에 value 추가
        - READ ONLY WITH APPLY
    
    2) PROTECTION_MODE
       : Protection mode currently in effect for the database
        - UNPROTECTED
        - PROTECTION
        - AVAILABILITY
        - PERFORMANCE
    
    3) DATABASE_ROLE
       : Current role of the database
        - PRIMARY
        - PHYSICAL STANDBY
        - LOGICAL STANDBY (TODO)
        - SNAPSHOT STANDBY
        - CASCADING STANDBY
    
    4) STANDBY_BECAME_PRIMARY_TSN
       : TSN at which the physical standby database became primary
    
    5) STANDBY_BECAME_PRIMARY_DATE
       : Time at which the physical standby database became primary
    TPM Agent 기동 / 종료
    SQL Detail 탭
  • Server Monitoring

  • Instance Monitoring

    • Instance Overview

    • Layout Tab

  • Daily Hourly Chart
  • Minute Chart

  • Plan History Comparison
  • All Session Flow

    • Period Selector

    • All Session Flow

    • Total Session Count

  • Search SQL Text

  • Alert Event Analysis

  • Invalid Object

  • Undo Usage

    Baseline
  • ASH Report

    • Create Report

  • My Account

    관제 데이터베이스 설정하기

    SysMasterDB 시작하기

    SysMasterDB 접속하기

    권한 설정하기

    User 생성하기

    Instance 등록하기

    Group 생성하기

    Dashboard

    Global Navigation Bar (GNB)

    Instance Overview

    Card View

    Custom Area

    Realtime

    Main Monitoring

    Usage Monitoring

    Lock Monitoring

    High Availability Monitoring

    Analysis

    Performance Analysis

    History Analysis

    Usage Analysis

    Report

    Settings

    Appendix

    Docker-compose / Podman-compose 환경
    설치 및 파라미터 설정
    기동 / 로그 확인 / 종료 / 초기화
    Kubernetes 환경
    설치 및 파라미터 설정
    기동 / 로그 확인 / 종료 / 초기화
    외부 접속 허용 포트
    유저 / TIP 설정
    TPM Agent 설치하기
    설치 및 파라미터 설정
    로그인
    그룹 선택
    Group
    Super Admin
    Admin
    Common User
    Manual Download
    Alert Alarm
    Profile
    Settings
    Instance Info
    Alert Events
    Compact Layout
    Detail Layout
    Expanded Layout
    Session Monitoring
    Session 상세보기
    Session Info 탭
    Tablespace Usage
    File Usage
    Temp Usage
    Undo Usage
    TSC Monitoring
    Performance Trend
    Top N Performance
    Heatmap Trend
    Changed Plan Analysis
    New Plan List
    SQL Text
    Tablespace Usage
    Filesystem Usage
    Segment Usage
    Temp Usage
    TPR Report
    Create Report
    Snapshot
    All Grioups
    All Users
    User
    Alert
    Installation Guide
    설치 준비하기
    SysMasterDB 8.3 설치하기
    릴리즈 노트

    O

    agent-config

    freq

    수집 주기 (단위: msec).

    [참고] 설정하지 않으면 1000ms로 설정되므로 1초 주기로 수집.

    X

    agent-config

    charset

    관제 DB의 문자 집합 (NLS_CHARACTERSET 파라미터로 확인).

    [참고] 설정하지 않으면 utf-8 로 설정

    X

    agent-config

    cpu-mem-proc-freq

    CPU, 메모리, 프로세스 목록 정보를 가져오는 주기(단위: ms) [참고] 설정하지 않으면 "freq" 값으로 설정됨

    X

    agent-config

    disk-freq

    디스크 정보를 가져오는 주기 (단위: ms)

    [참고] 설정하지 않으면 "freq × 60" 값으로 설정되며, 설정하면 설정한 주기로 수집을 진행

    X

    agent-config

    session-freq

    세션 정보를 가져오는 주기 (단위: ms)

    [참고] 설정하지 않으면 "freq" 값으로 설정됨

    X

    agent-config

    dbsysinfo-freq

    관제 DB의 시스템 지표 정보를 가져오는 주기 (단위: ms)

    [참고] 설정하지 않으면 "freq" 값으로 설정됨

    X

    agent-config

    sqltrace-freq

    SQL Trace 정보를 가져오는 주기 (단위: ms)

    [참고] 설정하지 않으면 "freq" 값으로 설정됨

    X

    agent-config

    sqltrace-queue-size

    메모리에 SQL Trace를 수집하기 전에 저장하는 개수. sqltrace-freq마다 해당 queue에서 수집된 SQL Trace를 모아서 수집한다. (1 ~ 2^32-1 사이의 정수). [참고] 설정하지 않으면 10으로 설정

    X

    agent-config

    sqltrace-elapsed-time-threshold

    SQL 실행 정보 생성 기준 실행 시간 임계치(단위: ms)(예: 100msec 이상 수행된 SQL에 대해서만실행 정보 생성) [참고] 설정하지 않으면 100으로 설정

    X

    agent-config

    sqltrace-monitoring-freq

    SQL Trace를 모니터링하는 스레드의 세션 목록 조회 주기(단위: ms) [참고] 설정하지 않으면 10으로 설정

    X

    agent-config

    sqltrace-monitoring-thread-per-session-count

    SQL Trace를 모니터링하는 스레드가 담당하는 세션의 개수 [참고] 설정하지 않으면 500으로 설정

    X

    log

    level

    로그 레벨로

    • FATAL

    • ERROR

    • WARN

    X

    log

    rotate-time-interval

    로그 파일이 아카이빙되는 주기 (단위: h)

    적재 중인 로그 파일을 주기마다 아카이빙하고 새로운 로그 파일에 적재

    [참고] 설정하지 않으면 24로 설정되므로 하루 주기로 로그 파일 아카이빙

    X

    log

    rotate-file-size

    로그 파일이 아카이빙되는 파일 사이즈 (단위: MB)

    적재 중인 로그 파일이 해당 파일 사이즈에 도달하면 적재 중인 로그 파일을 아카이빙하고 새로운 로그 파일에 적재

    [참고] 설정하지 않으면 50으로 설정되므로 적재 중인 로그 파일이 50MB에 도달하면 로그 파일 아카이빙

    X

    log

    max-log-file-number

    아카이빙되는 파일 최대 개수 (단위: 개수)

    아카이빙한 파일 개수가 최대에 도달하면 가장 오래 된 로그 파일부터 삭제

    [참고] 설정하지 않으면 7로 설정되므로 최대 로그 파일 개수는 7개

    X

    log

    path

    로그 파일 생성 디렉터리

    [참고] 설정하지 않으면 tpmagent.jar 경로에 logs/ 로 경로 설정

    X

    UTF-16

  • SHIFT-JIS

  • JA16SJIS

  • JA16SJISTILDE

  • JA16EUC

  • JA16EUCTILDE

  • VN8VN3

  • GBK

  • WE8MSWIN1252

  • ZHT16HKSCS

  • CL8MSWIN1251

  • WE8ISO8859P1

  • EE8ISO8859P2

  • WE8ISO8859P9

  • WE8ISO8859P15

  • CL8KOI8R

  • CL8ISO8859P5

  • CP866

  • TH8TISASCII

  • EL8MSWIN1253

  • EL8ISO8859P7

  • AR8MSWIN1256

  • AR8ISO8859P6

  • SJISTILDE

  • ZHT16BIG5

  • ZHT16MSWIN950

  • GB18030

  • IW8ISO8859P8

  • EUC-TW

  • ENABLE_GC_LOG

    TPM Agent 실행시 jvm gc log를 파일로 생성할 것인가에 대한 환경 변수, default는 false

    X

    JAVA_MIN_HEAP_SIZE

    TPM Agent 실행시 시작 heap 크기 설정에 대한 환경 변수, default는 각 jvm 구현체마다 다르며 보통 현재 머신 메모리의 1/64 이다.

    X

    JAVA_MAX_HEAP_SIZE

    TPM Agent 실행시 최대 heap 크기 설정에 대한 환경 변수, default는 각 jvm 구현체마다 다르며 보통 현재 머신 메모리의 1/4 이다.

    X

    agent-config

    id

    인스턴스 ID

    [참고] 웹 UI에서 관제 데이터베이스 인스턴스 등록 시 입력한 INSTANCE ID 값과 동일해야 함. 잘못 입력시 잘못된 Tibero 설치 머신 현황과 세션 목록, 그리고 TSC 네트워크 구성을 모니터링하게 되므로 주의 요망.

    O

    agent-config

    ip

    SysMaster DB 서버에 접속할 수 있는 IP 주소

    O

    agent-config

    port

    export BOOT_WITH_AUTO_DOWN_CLEAN=true
    export ENABLE_DEBUG=false
    export ENABLE_GC_LOG=false
    export JAVA_MIN_HEAP_SIZE=1000m
    export JAVA_MAX_HEAP_SIZE=1000m

    BOOT_WITH_AUTO_DOWN_CLEAN

    TPM Agent 실행시 기존에 실행중인 process가 있으면 해당 프로세스 종료 후 실행할 것인가에 대한 환경 변수, default는 true

    X

    ENABLE_DEBUG

    TPM Agent 실행시 debug port를 열 것인 지에 대한 환경 변수, default는 false

    X

    참고

    현재 Java TPM Agent는 Tibero jdbc Charset 을 동일하게 지원한다.

    참고

    1. sqltrace-elapsed-time-threshold 이상 수행된 SQL 실행 정보를 sqltrace-queue-size 크기의 큐에 저장한다.

    2. 큐가 모두 차있을 경우 가장 오래된 SQL 실행 정보부터 큐에서 지운다.

    3. TPM Agent에서 sqltrace-freq(ms)마다 SQL 실행 정보를 수집하므로, [세션 개수 * (sqltrace-freq / sqltrace-elapsed-time-threshold) ≤ sqltrace-queue-size] 로 sqltrace-queue-size를 설정해야 정상적인 상황에 유실되는 정보가 없다. sqltrace-queue-size의 경우 위에 언급되어 있듯 개수이므로 정수 값이며, 만약 나누기의 결과가 0.01과 같은 소수일 경우 부등호로 인하여 0.01 이상의 정수인 1이상으로 sqltrace-queue-size를 설정하면 유실이 없다. sqltrace-freq의 범위와 sqltrace-queue-size의 범위는 매뉴얼에 기입된 것을 참고한다. 추가로 부하 상황에서는 권장 값으로 sqltrace-queue-size를 설정하였더라도 수집 누락이 발생할 수 있는데, 예를 들어 Tibero에 부하가 발생하여 CPU 자원을 TPM Agent가 사용하지 못하게 되는 상황이 발생하면 수집 주기가 예기치 못하게 늘어나게 된다. 만약 기존에 1000ms 마다 수집을 하고 있었는데, CPU 자원을 사용하지 못하여 몇 초간 수집을 2000ms 마다 진행하게 될 수 있다. 이럴 경우 권장 값으로 설정하였더라도 SQL Trace 수집에 누락이 발생할 수 있다. 이럴 경우를 대비하여 권장 값보 다 더 많은 sqltrace-queue-size를 할당하여 대비할 수 있으나, 그만큼 메모리를 사용하게 되므로 상황에 맞게 권장 값 기반으로 sqltrace-queue-size를 설정하면 된다.

    Java TPM Agent 지원 Charset

    환경 변수를 통한 설정

    참고

    Tibero max session이 2000세션인 기준으로 1000MB 이며, 그 이상이면 max heap size를 증가시켜줘야 한다. 1000세션 당 200MB를 증가시키는 것을 권장한다. (한 세션 당 할당하는 SQL Trace의 개수가 10개라 가정했을 때, 한 세션당 추가로 사용하는 메모리는 약 200KB이다.)

    TPM Agent가 SysMaster DB 서버의 COLLECTOR_PORT로 연결하기 위한 포트 번호

    Ratio(%)

    SQL별 비율

    Module

    Category에서 선택한 값에 대한 정보

    – Module : 모듈 이름 – Program : 프로그램 이름 – Username : 데이터베이스 사용자 이름 – OS user : OS 사용자 이름 – Machine : 관제 DB hostname

    Value

    선택한 기준(Category, Item)에 대한 총합

    Ratio (%)

    각 항목별 사용 비율

    SQL ID | Child Number

    SQL ID와 SQL의 Child Number

    SQL Text

    SQL 구문

    Value

    SQL별 선택한 기준(Category, Item)에 대한 값

    Item

    Category / {CATEGORY}

    참고

    SQL 수행 이력 수집에 사용하는 티베로 라이브러리 이슈로 일부 정보에 Machine, Module, Program, Username, OS User 항목이 수집되지 않을 수 있다.

    {ITEM} / SQL

    Item 선택
    Category 정보
    SQL 정보

    Later Free/Total Size

    이후 시점의 여유 공간 현황

    Earlier Used/Total Size

    이전 시점의 사용량 현황

    Later Total/Total Size

    이후 시점의 사용량 현황

    Mounted On

    마운트 영역 이름

    FileSystem Name

    파일 시스템 이름

    Earlier Time

    이전 시점

    Later Time

    이후 시점

    Earlier Free/Total Size

    Log Time

    수집 시간

    Used

    사용량

    Free

    사용 가능한 양

    Filesystem Info

    Filesystem Info

    이전 시점의 여유 공간 현황

    항목
    설명

    SID

    세션의 ID

    Serial#

    세션의 시리얼 번호

    Elapsed Time

    세션의 현재 수행 중인 SQL의 Elapsed Time

    Username

    현재 사용자 이름

    Program

    사용자는 Elapsed Time의 기준을 설정할 수 있으며, 설정된 범위로 어떤 세션이 오래 수행되었는지를 색상을 통해 직관적으로 파악할 수 있다.

    세션을 Kill 시킬 수 있다. Session Monitoring 기능에 대한 권한(Privileges)이 Full로 설정된 유저만 수행할 수 있으며, Session 목록에서 특정 세션을 클릭해야만 해당 버튼이 표시된다.

    [Kill Session] 버튼을 클릭하면 Kill Session 팝업창이 열린다. 이때 해당 세션을 Kill 하거나 동작을 취소할 수 있다.

    다음은 Kill Session 팝업창에서 제공하는 정보에 대한 설명이다.

    항목
    설명

    SID / Serial#

    세션의 ID / 세션의 시리얼 번호

    Status

    세션의 상태

    User Name

    세션 사용자 이름

    Session 모니터링 주요기능

    Session 목록

    참고

    Session 정보 수집에 사용하는 티베로 라이브러리 이슈로 일부 정보에 Username, Program, Module, Schema, Terminal, Machine, OS User 등 항목이 수집되지 않을 수 있다.

    Long running session 모니터링

    Kill Session

    참고

    해당 인스턴스의 세션을 종료할 수 있다(Session Kill). Configurable Privileges 중 선택한 인스턴스에 대해 [Kill Session] 권한이 부여된 사용자에 한해 사용할 수 있는 기능이다.

    Partition Name

    파티션 이름

    Used/Total Size

    해당 세그먼트가 차지하는 공간의 비율

    Prev SQL ID

    세션이 이전에 수행했던 SQL의 SQL ID

    REDO_LOG_SIZE

    Redo 로그 사이즈

    REDO_WRITE_MULTI

    Redo 로그 버퍼의 내용 기록을 요청한 세션이 다수인 경우의 횟수

    USER_ROLLBACKS

    사용자가 롤백을 요청한 횟수

    SERIAL_NUMBER

    세션의 시리얼 번호

    CONSISTENT_BLOCK_GETS_EXAMINE_NOWAIT

    Consistent Read Mode examine에 대한 nowait의 횟수

    CURRENT_BLOCK_GETS

    Current 상태에 있는 Block의 데이터를 읽은 횟수

    (current block gets : 최신 버전의 Block을 버퍼 Cache에서 찾아 pin하는 것과 관련된 수치)

    REQ_SERVICE_TIME

    DB Time (실제 Working 스레드가 일한 시간의 총합)

    CURRENT_BLOCK_GETS_EXAMINE

    Index branch peep이나 데이터 Block의 Rowlock 정보를 Block pin없이 빠르게 얻어오는 Current examine 기능의 사용 횟수

    BLOCK_DISK_READ

    디스크에서 Block을 읽어 버퍼 Cache에 올리기를 기다리는 시간

    EXECUTE_COUNT

    SQL 실행 횟수

    CONSISTENT_BLOCK_GETS_EXAMINE

    Index block unique key search 등에서 Pin을 잡지 않고 필요한 값을 빠르게 얻어오는 Consistent Read(CR) examine 기능을 사용한 횟수

    REDO_WRITE

    Redo 버퍼의 로그 Block들을 디스크에 기록하는데 걸린 시간

    LOGICAL_READS

    Memory I/O로 읽은 Block 개수

    HARD_PARSE_COUNT

    Hard Parse 횟수

    PHYSICAL_READS

    Disk I/O로 읽은 Block 개수

    DB_CPU_TIME

    CPU 사용 시간

    CONSISTENT_BLOCK_GETS

    Consistent Read (CR) mode로 읽은 Block 개수

    PHYSICAL_WRITE

    디스크에 write한 Block 개수

    BUFFER_CACHE_HIT

    Buffer Cache 적중률

    CONSISTENT_MULTI_BLOCK_GETS

    Multi Block에 대해 CONSISTENT_BLOCK_GETS을 수행한 횟수

    CURRENT_BLOCK_GETS_EXAMINE_NOWAIT

    current block gets examine에 대한 nowait 횟수

    USER_COMMIT

    세션의 User Commit 횟수

    CURRENT_BLOCK_GETS_NOWAIT

    current block gets에 대한 nowait 수행 횟수 (대기 없이 current block get을 수행한 횟수)

    MULTI_BLOCK_DISK_READ

    Multi Block을 디스크에서 Read한 횟수

    이전 시점의 여유 공간 현황

    Later Free/Total Size

    이후 시점의 여유 공간 현황

    Earlier Used/Total Size

    이전 시점의 사용량 현황

    Later Total/Total Size

    이후 시점의 사용량 현황

    Free

    사용 가능한 양

    Sub Object Name

    Invalid Object의 Sub Object 이름

    Object Type

    Invalid Object의 타입

    Status

    Invalid Object의 상태 (INVALID)

    Last DDL Time

    Invalid Object의 최근 DDL이 실행된 시간

    Segment Usage

    글로벌 내비게이션 바에서 [Analysis] > [Usage Analysis] > [Segment Usage] 메뉴를 클릭하면 Segment Usage 화면이 열린다.

    Segment Usage 전체 화면

    Overview

    조회하기 원하는 날짜를 선택할 수 있는 기능이 있다. 조회한 기간의 Segment usage 목록에 간단하게 사용량 증감을 보여준다.

    Segment Usage Overview

    Segment Usage

    이 화면에서는 지정한 기간 동안의 세그먼트 이름별 크기의 변화량을 확인할 수 있다.

    Segment Usage

    다음은 Segment Usage 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명

    Segment Usage Header에는 데이터 조회를 위한 필터링을 선택할 수 있는 기능이 있다.

    Order by 우측의 드롭박스를 이용해 원하는 column으로 정렬할 수 있다.

    그 오른쪽의 드롭박스를 이용해 사용자가 보기를 원하는 top 개수를 설정할 수 있다.

    Segment Usage 에서 특정 데이터 클릭 시 해당 세그먼트의 일자별 크기 변화를 상세하게 확인할 수 있다. 이때 오른쪽의 그래프를 통해 크기 변화량을 한눈에 파악할 수 있다.

    다음은 Segment Info 화면에서 제공하는 항목에 대한 설명이다.

    항목
    설명
    티베로 | 대한민국 대표 데이터베이스 전문 기업티베로
    INFO
  • DEBUG

  • TRACE

  • [참고]설정하지 않으면 INFO 로 설정됨.

    DEBUG 이상 설정을 할 경우 로그양이 많아져 TPM Agent 에 설정한 주기 안에 수집을 하지 못하여 데이터 누락이 발생할 수 있음. 그로 인하여 실시간 데이터 모니터링 중 데이터가 조회되지 않는 현상이 있을 수 있음. 따라서 운영 환경에서는 해당 설정을 하지 않는 것을 권고하며, 이슈 분석을 위해서만 해당 로그 레벨을 설정.

    Layout Tab 기본 기능
    Layout 설정
    Chart
    Total Session Info
    Logo

    Tablespace Name

    테이블스페이스 이름

    Owner

    Object의 소유자

    Segment Name

    세그먼트 이름

    Segment Type

    세그먼트 종류

    Partition Name

    파티션 이름

    Earlier Extents

    이전 시점의 Extent 수

    Later Extents

    이후 시점의 Extent 수

    Earlier Blocks

    이전 시점의 Blocks

    Later Blocks

    이후 시점의 Blocks

    Blocks

    Block 수

    Earlier Time

    이전 시점

    Later Time

    이후 시점

    Earlier Size

    이전 시점의 크기

    Later Size

    이후 시점의 크기

    Increment

    Log Time

    수집 시간

    Partition Count

    파티션 수

    Size

    크기

    Segment Usage Header

    Segment Info

    Segment Usage Date Column
    Segment Usage Date Picker
    Segment Info

    이전 시점 대비 이후 시점 크기 증감량

    세션의 프로그램 이름

    Module

    dbms_application_info.set_module로 지정된 모듈의 이름

    Logical Reads

    세션의 Logical Reads 값

    Physical Reads

    세션의 Physical Reads 값

    Execute Count

    세션의 Execute Count 값

    Hard Parse Count

    세션의 Hard Parse 값

    Wait Event

    세션의 Wait Event 이름

    Wait Time

    세션이 Wait Event로 대기한 시간

    Status

    세션의 상태

    • READY : 세션 준비 상태

    • RUNNING : 세션 Running 상태

    • TX_RECOVERING : 트랜젝션 복구 중 상태

    • SESS_CLEANUP : 세션 리소스 정리 중 상태

    • ASSIGNED : 세션에 스레드가 할당되었지만 아직 준비가 되어 있지 않은 상태

    • CLOSING : 세션이 닫힌 상태

    • ROLLING_BACK : PE명세 레벨 트렌젝션의 Slave가 롤백된 상태

    State

    작업 스레드의 상태

    • INVALID : 초기화 되지 않음

    • NEW : 생성 중

    • IDLE : 실행될 준비가 됨

    • RUNNING : 실행 중

    • WAITING : 내부 메시지 대기 중

    • RECV_WAITING : 클라이언트 메시지 대기 중

    • STOP_BY_MTHR : 모니터링 프로세스에 의해 중지됨

    • DEAD: Dead 상태

    PGA Used Memory

    세션의 PGA 메모리 사용량

    SQL Trace

    세션에서 SQL 추적을 사용할지 여부

    WLock Wait

    세션이 대기 중인 Wait 타입

    Redo Entries

    세션의 Redo Entries 값

    Tx Undo Block Count

    Transaction Undo Block 개수

    Tx Undo Record Count

    Transaction Undo Record 개수

    User Commits

    세션의 User Commits 값

    Audsid

    세션의 두 번째 시리얼 번호

    User ID

    User ID 정보

    IP Address

    User 접속 IP 주소

    Command

    현재 실행 중인 SQL 타입

    0 : 실행 중인 SQL 없음

    1 : SELECT

    2 : INSERT

    3 : UPDATE

    4 : DELETE

    5 : MERGE

    6 : CALL

    Schema

    세션의 스키마

    Session Type

    세션의 타입 WTHR : Working thread

    CTHR : Control thread

    LGWR : Log writing process

    CKPT : Checkpoint process

    LARC : Log archive

    AGENT : Sequence process

    MTHR : Monitoring process

    DBWR : Datablock writing process

    LNW : Log network writing process

    SQL ID

    세션이 수행 중인 SQL의 SQL ID

    Prev SQL ID

    마지막으로 수행된 SQL의 SQL ID

    Child Number

    세션이 수행 중인 SQL ID의 Child Number 값

    Prev Child Number

    마지막으로 수행된 SQL ID의 Child Number 값

    Logon Time

    세션의 로그온 시간

    Client PID

    세션의 Client PID

    PID

    세션이 속한 프로세스의 식별자

    OS User

    연결된 세션의 OS 계정 이름

    Machine

    연결된 세션의 호스트 이름

    Terminal

    연결된 세션의 터미널(TTY) 정보

    Action

    dbms_application_info.set_module/action으로 지정된 액션의 이름

    Client Info

    dbms_application_info.set_client_info로 지정된 client_info의 이름

    Client Identifier

    dbms_session.set_identifier로 지정된 client ID의 이름

    Program

    세션의 프로그램 이름

    Module

    세션의 모듈 이름

    Wlock Wait

    세션이 대기 중인 Wait 타입

    Machine

    연결된 세션의 호스트 이름

    설치 및 파라미터 설정

    Kubernetes 환경에서 SysMaster DB를 설치하는 과정이다.

    1. 도커(Docker) 이미지 로드

    설치 파일이 준비된 디렉터리에서 아래의 명령을 수행하여 도커 이미지를 로드한다.

    docker load -i sysmaster-db-{version}.tar

    이때 로드된 도커 이미지 목록은 다음과 같다.

    • sysmaster-db-client:{version}

    • sysmaster-db-sdm:{version}

    • sysmaster-db-tibero-master:{version}

    • sysmaster-db-collector:{version}

    • sysmaster-db-analyzer:{version}

    • sysmaster-db-tiberoopensql-postgres:{version}

    • sysmaster-db-schema-registry:{version}

    • sysmaster-db-kafka-loggable:{version}

    • sysmaster-db-zookeeper-loggable:{version}

    • sysmaster-db-alpine-linux:{version}


    로드한 도커 이미지들을 해당 환경에서 사용 중인 이미지 리포지터리로 푸시한다.


    설치 디렉터리에서 kubernetes 디렉터리 안의 yaml 파일들을 통해서 8개의 디플로이먼트들에 대해 정의한다. 각 디플로이먼트에 대한 설명은 다음과 같다.

    디플로이먼트
    설명

    설치 디렉터리에서 kubernetes/init/configmap.yaml 파일을 열어 SysMaster DB의 설치에 필요한 계정 정보 및 보관 주기 관련 파라미터 값을 설정한다.

    해당 과정에서 설정하는 파라미터에 대한 설명은 다음과 같다.

    파라미터 이름
    설명
    초기값

    설치 디렉터리에서 kubernetes/init/service.yaml 파일을 열어 SysMaster DB의 설치에 필요한 포트 관련 파라미터 값을 설정한다. 해당 과정에서 설정하는 파라미터에 대한 설명은 다음과 같다.

    파라미터 이름
    설명
    초기값

    설치 디렉터리에서 kubernetes/init/configmap.yaml 파일을 통해 Meta DB 및 Repository DB 파라미터 값을 확인할 수 있다. 다음은 Meta DB에 대한 파라미터 설정 예시이다.

    해당 conf 파일은 기본적으로 제공되는 설정값을 사용하되, 다음에서 설명하는 파라미터는 필요 시 구동 환경에 맞게 사용자가 직접 설정해준다.

    파라미터 이름
    설명

    collector

    관제 데이터베이스로부터 데이터를 수집하는 서버

    analyzer

    수집한 정보를 가공해 분석 및 저장하는 서버

    metadb

    UI 관련 설정 정보를 저장하는 DB 서버

    repodb

    관제 데이터베이스 수집 데이터를 저장하는 DB 서버

    kafka

    Kafka 클러스터(ZooKeeper, Broker, Schema Registry 포함)

    METADB_USER

    Meta DB의 슈퍼 사용자 이름

    sysmaster

    METADB_PASSWORD

    Meta DB의 슈퍼 사용자 암호

    sysmaster

    REPODB_USER

    Repository DB의 슈퍼 사용자 이름

    sysmaster

    REPODB_PASSWORD

    Repository DB의 슈퍼 사용자 암호

    sysmaster

    RETENTION_DAY

    수집 정보의 보관 주기

    7

    LOG_RETENTION_DAY

    로그 파일 보관 주기

    1

    LOG_FILE_SIZE

    로그 파일 하나의 최대 크기

    100MB

    LOG_TOTAL_SIZE

    모듈 별 최대 로그 저장 용량

    1000MB

    LOG_LEVEL

    모듈 별 최대 로그 레벨

    info

    CONTAINER_LOG_PATH

    컨테이너 내부 로그 경로 설정

    /sysmaster/logs

    KAFKA_MESSAGE_MAX_BYTES

    카프카 메시지 사이즈 설정, 1MB ~ 2GB 범위로 설정 가능

    20971520 Byte

    TIME_ZONE

    SysMaster DB 서버 Time-Zone 설정

    Asia/Seoul

    SQL_FLUSH_THRESHOLD

    SQL 관련 하나의 메시지가 담을 수 있는 정보 개수 제한. SQL Plan의 경우 해당 값의 10배로 제한한다.

    관제 DB 당 100개

    SQL_RS_FETCH_SIZE

    한 번에 관제 DB 로부터 조회하는 SQL 관련 정보 row 개수

    관제 DB 당 1000개

    SKIP_DB_USER_COUNT_MIGRATION_PATCH

    (기설치 환경 패치 시,) 기수집 데이터 기반 Repository DB의 DB_USER_COUNT 테이블 데이터 생성 패치 생략 여부. 필요 시 아래 [참고 1]을 확인하고 설정.

    true (주석 처리를 통한 미적용)

    SKIP_DAILY_SEGMENT_MIGRATION_PATCH

    (기설치 환경 패치 시,) 기수집 데이터 기반 Repository DB의 DAILY_SEGMENT 테이블 데이터 생성 패치 생략 여부. 필요 시 아래 [참고 1]을 확인하고 설정.

    true (주석 처리를 통한 미적용)

    SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

    (기설치 환경 패치 시,) v8.3.0 신규 스키마 적용 테이블 대상 v8.2.1 이하 기수집 데이터 마이그레이션 생략 여부. 필요 시 아래 [참고 2]를 확인하고 설정.

    true (주석 처리를 통한 미적용)

    RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

    (기설치 환경 패치 시,) v8.3.0에서 신규 스키마가 적용된 테이블에 대한 v8.2.1 이하 기수집 데이터 중 마이그레이션 대상 데이터 범위(일 단위 기간). 필요 시 아래 [참고 2]를 확인하고 설정.

    7 (주석 처리를 통한 미적용)

    SDM_HEAP_SIZE_MAX

    SDM의 최대 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/4 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    SDM_HEAP_SIZE_MIN

    SDM의 최소 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/64 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    ANALYZER_HEAP_SIZE_MAX

    Analyzer의 최대 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/4 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    ANALYZER_HEAP_SIZE_MIN

    Analyzer의 최소 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/64 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    COLLECTOR_HEAP_SIZE_MAX

    Collector의 최대 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/4 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    COLLECTOR_HEAP_SIZE_MIN

    Collector의 최소 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/64 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    TBM_HEAP_SIZE_MAX

    TBM의 최대 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/4 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    TBM_HEAP_SIZE_MIN

    TBM의 최소 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/64 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    PERFORMANCE_LOGGING

    성능 관련 로그 작성 여부 [참고] 추가적인 CPU, Disk를 사용하는 것이기 때문에 Y로 설정 시 성능 저하가 발생할 수 있음.

    N

    LIMIT_SQL_HASH_COUNT

    중복 수집 방지를 위해 메모리에 저장하는 SQL plan hash value + cost 조합의 최대 개수이며, 동시에 SQL text hash value 최대 개수

    100만개

    [참고] 총 약 300MB 메모리를 차지한다.

    METADB_PORT

    Meta DB의 접속 포트 번호

    [수정 위치] metadata.name=metadb, name="metadb-port"인 ports의 nodePort 수정

    25432

    REPODB_PORT

    Repository DB의 접속 포트 번호

    [수정 위치] metadata.name=repodb, name="repodb-port"인 ports의 nodePort 수정

    15432

    client

    사용자가 브라우저를 통해 접속하게 될 웹 서버

    sdm

    수집 정보를 조회하고 클라이언트와 통신하는 API 서버

    tibero-master

    관제 데이터베이스에 대한 상태 확인과 Admin 기능을 수행하는 서버

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-sysmaster
      namespace: sysmasterdb
    data:
      RETENTION_DAY: "7"
      METADB_USER: sysmaster
      METADB_PASSWORD: sysmaster
      REPODB_USER: sysmaster
      REPODB_PASSWORD: sysmaster
      ADMIN_USERNAME: admin
      ADMIN_PASSWORD: admin
      LOG_RETENTION_DAY: "1"
      LOG_FILE_SIZE: "100MB"
      LOG_TOTAL_SIZE: "1000MB"
      LOG_LEVEL: "info"
      CONTAINER_LOG_PATH: "/sysmaster/logs"
      KAFKA_MESSAGE_MAX_BYTES: "20971520"
      TIME_ZONE: Asia/Seoul
      SQL_FLUSH_THRESHOLD: 100
      SQL_RS_FETCH_SIZE: 1000
      # SKIP_DB_USER_COUNT_MIGRATION_PATCH: true
      # SKIP_DAILY_SEGMENT_MIGRATION_PATCH: true
      # SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH=true
      # RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH=7
      SDM_HEAP_SIZE_MAX: ""
      SDM_HEAP_SIZE_MIN: ""
      ANALYZER_HEAP_SIZE_MAX: ""
      ANALYZER_HEAP_SIZE_MIN: ""
      COLLECTOR_HEAP_SIZE_MAX: ""
      COLLECTOR_HEAP_SIZE_MIN: ""
      TBM_HEAP_SIZE_MAX: ""
      TBM_HEAP_SIZE_MIN: ""
      PERFORMANCE_LOGGING: ""
      LIMIT_SQL_HASH_COUNT: ""

    ADMIN_USERNAME

    Admin 계정의 사용자 이름

    admin

    ADMIN_PASSWORD

    Admin 계정의 암호

    admin

    CLIENT_PORT

    UI 접속 URL의 포트 번호

    [수정 위치] metadata.name=client, name="client-port"인 ports의 nodePort 수정

    80

    COLLECTOR_PORT

    수집 모듈(TPM Agent)이 접속할 포트 번호

    [수정 위치] metadata.name=collector, name="collector-port"인 ports의 nodePort 수정

    [참고] 관제 DB에서 접속할 수 있도록 SysMaster 서버에서 열려 있어야 함.

    8292

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: sysmasterdb8-metadb-configmap
      namespace: sysmasterdb
    data:
      meta.conf: |
        pg_superuser: "postgres"
        pg_superuser_password: "postgres"
        pg_data: "/pgdata"
        pg_log: "/sysmaster/logs"
        pg_users:
          - name: "sysmaster"
            pass: "sysmaster"
            role_attr_flags: LOGIN
        pg_databases:
          - name: metadb
            owner: sysmaster
        pg_max_connections: 20
        pg_postgres_conf_params:
          - name: "log_filename"
            value: "metadb-%H%M.log"
          - name: "log_timezone"
            value: "Asia/Seoul"
          - name: "log_min_messages"
            value: "INFO"
          - name: "log_rotation_age"
            value: "60"
          - name: "log_rotation_size"
            value: "100MB"
          - name: "log_truncate_on_rotation"
            value: "on"

    pg_max_connections

    Meta DB(또는 Repository DB)의 최대 커넥션 수

    log_timezone

    Meta DB(또는 Repository DB)의 로그 시간 Time-Zone

    2. 도커(Docker) 이미지 푸시

    3. 쿠버네티스(Kubernetes) 오브젝트 정의

    4. 설치 파라미터 설정 - 계정 정보 및 보관 주기

    참고 1

    SKIP_DB_USER_COUNT_MIGRATION_PATCH, SKIP_DAILY_SEGMENT_MIGRATION_PATCH 파라미터는 신규 설치 시에는 필요하지 않고, SysMaster DB v8.1.2 이하 기설치 환경에서 버전 업데이트를 수행하는 경우에만 적용이 필요하다.

    각 파라미터를 별도로 설정하지 않으면, 버전 업데이트 시 해당 패치가 자동으로 수행되면서 기수집 데이터를 기반으로 DB_USER_COUNT, DAILY_SEGMENT 데이터를 생성한다.

    이때, 기수집 데이터양에 따라 패치 수행에 장시간 소요될 수 있으므로, 해당 파라미터를 통해 사용자가 선택적으로 해당 패치 수행 여부를 설정할 수 있다.

    v8.1.3 이상의 SysMaster DB 서비스 이용 시, DB_USER_COUNT, DAILY_SEGMENT 데이터는 각각 다음 메뉴에서 사용된다.

    1. DB_USER_COUNT 데이터 - Analysis > All Session Flow 메뉴

    2. DAILY_SEGMENT 데이터 - Analysis > Segment Usage 메뉴

    따라서 해당 패치를 생략하도록 설정(각 파라미터를 true로 설정하고 주석 제거)하는 경우, 위 1, 2의 메뉴에서 과거(해당 업데이트 이전에 수집된) 데이터가 조회되지 않는다. 그러므로 기본적으로는 해당 파라미터를 별도로 설정하지 않는 것을 권장한다.

    반면 다음과 같은 경우, 사용자는 해당 파라미터를 true로 설정(주석 제거)하여 앞서 설명한 패치를 생략할 수 있다.

    1. 위 1, 2의 메뉴에서 과거(SysMaster DB v8.1.2 이하에서 수집된) 데이터 조회가 불필요한 경우

    2. (SysMaster DB 서버 자원 제한 등의 이유로) 해당 데이터 생성 패치 진행 시 장시간 SysMaster DB 사용이 불가능해지는 상황이 우려되고, 이를 방지해야만 하는 경우

    사용자는 필요에 따라, 해당 두 파라미터 중 원하는 파라미터만 선택적으로 설정하는 것도 가능하다.

    참고 2

    SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH, RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터는 신규 설치 시에는 필요하지 않고, SysMaster DB v8.2.1 이하 기설치 환경에서 버전 업데이트를 수행하는 경우에만 적용이 필요하다.

    각 파라미터를 별도로 설정하지 않으면, v8.3.0에서 신규 스키마가 적용된 테이블을 대상으로 v8.2.1 이하 버전에서의 기수집 데이터를 마이그레이션하는 패치가 자동으로 수행된다.

    v8.3.0에서 신규 스키마가 적용된 테이블 목록은 다음과 같다.

    • SQL

    • SQL_TEXT

    • SQL_PLAN

    • DB_SESSION

    • SESSION_TEMP

    • SESSION_UNDO

    • LOCK

    • SQL_TRACE

    위 테이블에 대한 마이그레이션 과정은 기수집 데이터양에 따라 장시간 소요될 수 있다.

    사용자는 필요에 따라, 다음과 같이 별도 파라미터 설정을 통해 사용자가 선택적으로 해당 패치 수행 여부를 설정할 수 있다.

    • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

      • v8.3.0에서 신규 스키마가 적용된 테이블에 대해 v8.2.1 이하 기수집 데이터를 마이그레이션하는 패치 수행 여부를 설정

      • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터를 true로 설정(주석 제거) 시, 패치 대상 테이블 전체에 대한 마이그레이션이 수행되지 않음.

    SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 설정을 통해 마이그레이션을 수행하지 않은 경우, v8.2.1 이하에서 수집된 데이터가 삭제되므로 더 이상 조회되지 않는다.

    그러므로 기본적으로는 해당 파라미터를 별도로 설정하지 않는 것을 권장한다.

    반면 다음과 같은 경우, 사용자는 해당 마이그레이션 생략을 고려할 수 있다.

    1. v8.3.0에서 신규 스키마 적용 대상 테이블의 과거(SysMaster DB v8.2.1 이하에서 수집된) 데이터 조회가 불필요한 경우

    2. (SysMaster DB 서버 자원 제한 등의 이유로) 해당 데이터 생성 패치 진행 시 장시간 SysMaster DB 사용이 불가능해지는 상황이 우려되고, 이를 방지해야만 하는 경우

    이때, 사용자는 아래 파라미터 설정을 통해 (마이그레이션 패치를 수행하되,) 패치 수행 대상 데이터 범위(일 단위 기간)를 별도로 설정할 수도 있다.

    • RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

      • v8.3.0에서 신규 스키마가 적용된 테이블에 대한 v8.2.1 이하 기수집 데이터 중 마이그레이션 대상 데이터 범위(일 단위 기간) 설정

        • 예를 들어, RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터를 7로 설정(주석 제거)하는 경우, v8.2.1 이하에서 수집된 데이터 중 최근 7일 이내의 데이터에 대해서만 마이그레이션

    상기 설명을 참고하여, 사용자는 운영 환경에 맞는 적절한 파라미터 설정을 선택, 적용할 수 있다.

    5. 설치 파라미터 설정 - 포트

    6. Meta DB 및 Repository DB 파라미터 설정

    참고

    Meta DB 및 Repository DB 파라미터 변경이 필요한 경우, 관련 파라미터 설정은 OpenSQL 사용 가이드를 참조할 수 있다. 그러나 관련 파라미터 설정을 임의 수정하는 경우, SysMasterDB 서버의 정상 동작이 보장되지 않는다. 따라서 위 표에 명시된 파라미터 외 다른 파라미터는, 기본 제공 설정값을 그대로 사용하는 것을 권장한다.

    설치 및 파라미터 설정

    Docker-compose 및 Podman-compose 환경에서 SysMaster DB 8.3를 설치하는 과정이다.

    참고

    Podman-compose는 Docker-compose 스타일의 yml 파일을 지원하기 때문에 동일한 yml 파일로 docker / podman 환경에서 모두 구동할 수 있다.

    1. Docker / Podman 이미지 로드

    설치 파일이 준비된 디렉터리에서 아래의 명령을 수행하여 Docker / Podman 이미지를 로드한다.

    • Docker:

      docker load -i sysmaster-db-{version}.tar
    • Podman:

      podman load -i sysmaster-db-{version}.tar

    이때 로드된 컨테이너 이미지 목록은 다음과 같다.

    • sysmaster-db-client:{version}

    • sysmaster-db-sdm:{version}

    • sysmaster-db-tibero-master:{version}

    • sysmaster-db-collector:{version}

    • sysmaster-db-analyzer:{version}

    • sysmaster-db-tiberoopensql-postgres:{version}

    • sysmaster-db-schema-registry:{version}

    • sysmaster-db-kafka-loggable:{version}

    • sysmaster-db-zookeeper-loggable:{version}


    설치 디렉터리에서 docker-compose.yml 파일을 열어 Docker-compose / Podman-compose 환경에 생성하는 10개의 서비스들에 대해 정의한다. 각 서비스에 대한 설명은 다음과 같다.

    서비스
    설명

    설치 디렉터리에서 .env 파일을 열어 SysMaster DB 8.3의 설치에 필요한 파라미터 값을 설정한다.

    이때 각 파라미터들은 개행으로 구분하며, 파라미터 이름과 값 사이에는 공백 없이 등호를 하나 입력한다.

    해당 과정에서 설정하는 파라미터에 대한 설명은 다음과 같다.

    파라미터 이름
    설명
    초기값

    Rootless podman 환경에서는 NGINX_RESOLVER 패러미터 설정이 별도로 필요하다. 이는 시스마스터 기동 후 개별 컨테이너가 재기동 되는 상황에서의 재연결을 위해 필요하며 sysmaster 네트워크의 gateway ip 주소를 사용한다. 해당 값은 환경 / podman 기동마다 달라질 수 있다.

    아래 예시에서 NGINX_RESOLVER=10.89.0.1로 설정 후 시스마스터를 부팅하는 과정을 보여준다.

    Podman bridge 네트워크 환경에서 SysmasterDB 컨테이너가 동일 호스트에 설치된 관제 DB에 호스트 IP(예: 192.168.141.12) 로 접속을 시도할 경우, 컨테이너 → 호스트 방향의 Hairpin NAT(DNAT loopback) 가 기본적으로 보장되지 않아 Connection Refused가 발생할 수 있다.

    이는 동일 서버 내 구성이라도 컨테이너와 호스트가 서로 다른 네트워크 네임스페이스에 존재하기 때문에 발생하는 Podman bridge 구조적 제약이다.

    예시로, 컨테이너에 접속하여 telnet 192.168.141.12 40010을 수행하면 Connection refused로 실패하고, Host Gateway 경로 적용 후 telnet host.docker.internal 40010은 정상 접속되는 것으로 확인할 수 있다.

    해결을 위해 podman-compose.yml에 Host Gateway 매핑을 추가하고, 관제 DB 접속 주소를 호스트 IP → host.docker.internal 로 변경한다.

    아래 예시처럼 서비스에 extra_hosts를 추가한다.

    그리고 아래처럼 관제 DB IP를 host.docker.internal 로 설정하면 동일 호스트에 설치된 관제 DB를 등록 할 수 있다.


    설치 디렉터리에서 meta.conf, repo.conf 파일을 통해 Meta DB 및 Repository DB 파라미터 값을 확인할 수 있다. 해당 conf 파일은 기본적으로 제공되는 설정값을 사용하되, 다음에서 설명하는 파라미터는 필요 시 구동 환경에 맞게 사용자가 직접 설정해준다.

    파라미터 이름
    설명
    이 수행됨.
  • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터를 true로 설정(주석 제거)한 경우, 본 파라미터 설정은 무시됨.

  • collector

    관제 데이터베이스로부터 데이터를 수집하는 서버

    analyzer

    수집한 정보를 가공해 분석 및 저장하는 서버

    metadb

    UI 관련 설정 정보를 저장하는 DB 서버

    repodb

    관제 데이터베이스 수집 데이터를 저장하는 DB 서버

    zookeeper

    Kafka Broker 서버의 상태 관리

    broker

    Kafka Broker 서버

    schema-registry

    Kafka 메시지 프로토콜 관리

    ADMIN_PASSWORD

    Admin 계정의 암호

    admin

    COLLECTOR_PORT

    수집 모듈(TPM Agent)이 접속할 포트 번호

    [참고] 관제 DB에서 접속할 수 있도록 SysMaster 서버에서 열려 있어야 함

    8292

    METADB_PORT

    Meta DB의 접속 포트 번호

    25432

    METADB_USER

    Meta DB의 슈퍼 사용자 이름

    sysmaster

    METADB_PASSWORD

    Meta DB의 슈퍼 사용자 암호

    sysmaster

    METADB_PATH

    Meta DB의 데이터 파일 경로

    ./meta

    METADB_CONF_PATH

    Meta DB의 설정 파일 경로

    ./meta.conf

    REPODB_PORT

    Repository DB의 접속 포트 번호

    15432

    REPODB_USER

    Repository DB의 슈퍼 사용자 이름

    sysmaster

    REPODB_PASSWORD

    Repository DB의 슈퍼 사용자 암호

    sysmaster

    REPODB_PATH

    Repository DB의 데이터 파일 경로

    ./repo

    REPODB_CONF_PATH

    Repository DB의 설정 파일 경로

    ./repo.conf

    RETENTION_DAY

    수집 정보의 보관 주기

    7

    LOG_PATH

    로그 생성 위치

    ./logs

    LOG_RETENTION_DAY

    로그 파일 보관 주기

    1

    LOG_FILE_SIZE

    로그 파일 하나의 최대 크기

    100MB

    LOG_TOTAL_SIZE

    모듈 별 최대 로그 저장 용량

    1000MB

    LOG_LEVEL

    모듈 별 로그 레벨

    info

    CONTAINER_LOG_PATH

    컨테이너 내부 로그 경로 설정

    /sysmaster/logs

    KAFKA_MESSAGE_MAX_BYTES

    카프카 메시지 사이즈 설정, 1MB ~ 2GB 범위로 설정 가능

    20971520 Byte

    TIME_ZONE

    SysMaster DB 서버 Time-Zone 설정

    Asia/Seoul

    SQL_FLUSH_THRESHOLD

    SQL 관련 하나의 메시지가 담을 수 있는 정보 개수 제한. SQL Plan의 경우 해당 값의 10배로 제한한다.

    관제 DB 당 100개

    SQL_RS_FETCH_SIZE

    한 번에 관제 DB 로부터 조회하는 SQL 관련 정보 row 개수

    관제 DB 당 1000개

    SKIP_DB_USER_COUNT_MIGRATION_PATCH

    (기설치 환경 패치 시,) 기수집 데이터 기반 Repository DB의 DB_USER_COUNT 테이블 데이터 생성 패치 생략 여부. 필요 시 아래 [참고 1]을 확인하고 설정.

    true (주석 처리를 통한 미적용)

    SKIP_DAILY_SEGMENT_MIGRATION_PATCH

    (기설치 환경 패치 시,) 기수집 데이터 기반 Repository DB의 DAILY_SEGMENT 테이블 데이터 생성 패치 생략 여부. 필요 시 아래 [참고 1]을 확인하고 설정.

    true (주석 처리를 통한 미적용)

    SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

    (기설치 환경 패치 시,) v8.3.0 신규 스키마 적용 테이블 대상 v8.2.1 이하 기수집 데이터 마이그레이션 생략 여부. 필요 시 아래 [참고 2]를 확인하고 설정.

    true (주석 처리를 통한 미적용)

    RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

    (기설치 환경 패치 시,) v8.3.0에서 신규 스키마가 적용된 테이블에 대한 v8.2.1 이하 기수집 데이터 중 마이그레이션 대상 데이터 범위(일 단위 기간). 필요 시 아래 [참고 2]를 확인하고 설정.

    7 (주석 처리를 통한 미적용)

    SDM_HEAP_SIZE_MAX

    SDM의 최대 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/4 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    SDM_HEAP_SIZE_MIN

    SDM의 최소 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/64 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    ANALYZER_HEAP_SIZE_MAX

    Analyzer의 최대 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/4 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    ANALYZER_HEAP_SIZE_MIN

    Analyzer의 최소 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/64 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    COLLECTOR_HEAP_SIZE_MAX

    Collector의 최대 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/4 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    COLLECTOR_HEAP_SIZE_MIN

    Collector의 최소 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/64 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    TBM_HEAP_SIZE_MAX

    TBM의 최대 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/4 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    TBM_HEAP_SIZE_MIN

    TBM의 최소 힙 크기

    현재 컨테이너 전체 메모리(free 명령어의 total mem 참고)의 1/64 이다.

    [참고] 현재 docker 기본 이미지는 openjdk:17-alpine 이다.

    PERFORMANCE_LOGGING

    성능 관련 로그 작성 여부 [참고] 추가적인 CPU, Disk를 사용하는 것이기 때문에 Y로 설정 시 성능 저하가 발생할 수 있음.

    N

    LIMIT_SQL_HASH_COUNT

    중복 수집 방지를 위해 메모리에 저장하는 SQL plan hash value + cost 조합의 최대 개수이며, 동시에 SQL text hash value 최대 개수

    100만개 [참고] 총 약 <등록된 인스턴스 개수> * 300MB 메모리를 차지한다.

    NGINX_RESOLVER

    Podman 환경 전용 설정 NGINX에서 DNS 이름을 해석하기 위해, Sysmaster 내부 DNS 네트워크의 게이트웨이 주소를 지정. 이설정은 Podman 환경에서만 필요하며, Docker 환경 등 다른 런타임에서는 별도의 설정이 요구되지 않습니다.

    podman network inspect script_sysmaster 로 확인 가능.

    log_timezone

    Meta DB(또는 Repository DB)의 로그 시간 Time-Zone

    client

    사용자가 브라우저를 통해 접속하게 될 웹 서버

    sdm

    수집 정보를 조회하고 클라이언트와 통신하는 API 서버

    tibero-master

    관제 데이터베이스에 대한 상태 확인과 Admin 기능을 수행하는 서버

    CLIENT_PORT=80
    ADMIN_USERNAME=admin
    ADMIN_PASSWORD=admin
    COLLECTOR_PORT=8292
    METADB_PORT=25432
    METADB_USER=sysmaster
    METADB_PASSWORD=sysmaster
    METADB_PATH=./meta
    METADB_CONF_PATH=./meta.conf
    REPODB_PORT=15432
    REPODB_USER=sysmaster
    REPODB_PASSWORD=sysmaster
    REPODB_PATH=./repo
    REPODB_CONF_PATH=./repo.conf
    RETENTION_DAY=7
    LOG_PATH=./logs
    LOG_RETENTION_DAY=1
    LOG_FILE_SIZE=100MB
    LOG_TOTAL_SIZE=1000MB
    LOG_LEVEL=info
    CONTAINER_LOG_PATH=/sysmaster/logs
    KAFKA_MESSAGE_MAX_BYTES=20971520
    TIME_ZONE=Asia/Seoul
    SQL_FLUSH_THRESHOLD=100
    SQL_RS_FETCH_SIZE=1000
    # SKIP_DB_USER_COUNT_MIGRATION_PATCH=true
    # SKIP_DAILY_SEGMENT_MIGRATION_PATCH=true
    # SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH=true
    # RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH=7
    SDM_HEAP_SIZE_MAX=
    SDM_HEAP_SIZE_MIN=
    ANALYZER_HEAP_SIZE_MAX=
    ANALYZER_HEAP_SIZE_MIN=
    COLLECTOR_HEAP_SIZE_MAX=
    COLLECTOR_HEAP_SIZE_MIN=
    TBM_HEAP_SIZE_MAX=
    TBM_HEAP_SIZE_MIN=
    PERFORMANCE_LOGGING=
    LIMIT_SQL_HASH_COUNT=
    # NGINX_RESOLVER=127.0.0.11  

    CLIENT_PORT

    UI 접속 URL의 포트 번호

    80

    ADMIN_USERNAME

    Admin 계정의 사용자 이름

    admin

    [tibero@smdb-podman ~]$ podman compose up --no-start
    [tibero@smdb-podman ~]$ podman network inspect script_sysmaster
    
    [
         {
              "name": "script_sysmaster",
              "id": "e014d8811e9b51f417d578358ab41e2624a465d9026c7916f9ba7e4ce382f699",
              "driver": "bridge",
              "network_interface": "cni-podman1",
              "created": "2025-08-04T22:55:11.345378476-04:00",
              "subnets": [
                   {
                        "subnet": "10.89.0.0/24",
                        "gateway": "10.89.0.1"  /// -> 이 주소를 사용.
                   }
              ],
              "ipv6_enabled": false,
              "internal": false,
              "dns_enabled": true,
              "labels": {
                   "com.docker.compose.project": "script",
                   "io.podman.compose.project": "script"
              },
              "ipam_options": {
                   "driver": "host-local"
              }
         }
    ]
    
    /// .env 파일에 패러미터 설정하기
    [tibero@smdb-podman ~]$ podman compose up -d
    tibero-master:
      image: sysmaster-db-tibero-master:8.3.4
      container_name: tibero-master
      hostname: tibero-master
      environment:
        <<: *common-env
        # (기타 환경변수 생략)
      networks:
        sysmaster:
          aliases:
            - tibero-master
      restart: on-failure
      # 이 부분 추가
      extra_hosts:
        - "host.docker.internal:host-gateway"

    pg_max_connections

    Meta DB(또는 Repository DB)의 최대 커넥션 수

    pg_owner_id

    해당 DB 데이터 디렉토리 접근 권한 설정을 위한 Host OS의 사용자 ID(uid). 호스트 머신의 특정 유저에서 컨테이너 DB 디렉토리로 직접 접근하고 싶을 경우 해당 유저의 사용자 ID로 설정한다.

    pg_group_id

    해당 DB 데이터 디렉토리 접근 권한 설정을 위한 Host OS의 사용자 그룹 ID(gid). 호스트 머신의 특정 유저에서 컨테이너 DB 디렉토리로 직접 접근하고 싶을 경우 해당 유저의 그룹 ID로 설정한다.

    참고

    docker images | grep sysmaster 명령어를 통해 컨테이너 이미지 목록을 확인할 수 있다.

    2. Docker / Podman 서비스 정의

    3. 설치 파라미터 설정

    참고

    .env 파일이 없다면 vim .env 명령어를 이용해 생성한다.

    참고 1

    SKIP_DB_USER_COUNT_MIGRATION_PATCH, SKIP_DAILY_SEGMENT_MIGRATION_PATCH 파라미터는 신규 설치 시에는 필요하지 않고, SysMaster DB v8.1.2 이하 기설치 환경에서 버전 업데이트를 수행하는 경우에만 적용이 필요하다.

    각 파라미터를 별도로 설정하지 않으면, 버전 업데이트 시 해당 패치가 자동으로 수행되면서 기수집 데이터를 기반으로 DB_USER_COUNT, DAILY_SEGMENT 데이터를 생성한다.

    이때, 기수집 데이터양에 따라 패치 수행에 장시간 소요될 수 있으므로, 해당 파라미터를 통해 사용자가 선택적으로 해당 패치 수행 여부를 설정할 수 있다.

    v8.1.3 이상의 SysMaster DB 서비스 이용 시, DB_USER_COUNT, DAILY_SEGMENT 데이터는 각각 다음 메뉴에서 사용된다.

    1. DB_USER_COUNT 데이터 - Analysis > All Session Flow 메뉴

    2. DAILY_SEGMENT 데이터 - Analysis > Segment Usage 메뉴

    따라서 해당 패치를 생략하도록 설정(각 파라미터를 true로 설정하고 주석 제거)하는 경우, 위 1, 2의 메뉴에서 과거(해당 업데이트 이전에 수집된) 데이터가 조회되지 않는다. 그러므로 기본적으로는 해당 파라미터를 별도로 설정하지 않는 것을 권장한다.

    반면 다음과 같은 경우, 사용자는 해당 파라미터를 true로 설정(주석 제거)하여 앞서 설명한 패치를 생략할 수 있다.

    1. 위 1, 2의 메뉴에서 과거(SysMaster DB v8.1.2 이하에서 수집된) 데이터 조회가 불필요한 경우

    2. (SysMaster DB 서버 자원 제한 등의 이유로) 해당 데이터 생성 패치 진행 시 장시간 SysMaster DB 사용이 불가능해지는 상황이 우려되고, 이를 방지해야만 하는 경우

    사용자는 필요에 따라, 해당 두 파라미터 중 원하는 파라미터만 선택적으로 설정하는 것도 가능하다.

    참고 2

    SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH, RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터는 신규 설치 시에는 필요하지 않고, SysMaster DB v8.2.1 이하 기설치 환경에서 버전 업데이트를 수행하는 경우에만 적용이 필요하다.

    각 파라미터를 별도로 설정하지 않으면, v8.3.0에서 신규 스키마가 적용된 테이블을 대상으로 v8.2.1 이하 버전에서의 기수집 데이터를 마이그레이션하는 패치가 자동으로 수행된다.

    v8.3.0에서 신규 스키마가 적용된 테이블 목록은 다음과 같다.

    • SQL

    • SQL_TEXT

    • SQL_PLAN

    • DB_SESSION

    • SESSION_TEMP

    • SESSION_UNDO

    • LOCK

    • SQL_TRACE

    위 테이블에 대한 마이그레이션 과정은 기수집 데이터양에 따라 장시간 소요될 수 있다.

    사용자는 필요에 따라, 다음과 같이 별도 파라미터 설정을 통해 사용자가 선택적으로 해당 패치 수행 여부를 설정할 수 있다.

    • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

      • v8.3.0에서 신규 스키마가 적용된 테이블에 대해 v8.2.1 이하 기수집 데이터를 마이그레이션하는 패치 수행 여부를 설정

      • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터를 true로 설정(주석 제거) 시, 패치 대상 테이블 전체에 대한 마이그레이션이 수행되지 않음.

    SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 설정을 통해 마이그레이션을 수행하지 않은 경우, v8.2.1 이하에서 수집된 데이터가 삭제되므로 더 이상 조회되지 않는다.

    그러므로 기본적으로는 해당 파라미터를 별도로 설정하지 않는 것을 권장한다.

    반면 다음과 같은 경우, 사용자는 해당 마이그레이션 생략을 고려할 수 있다.

    1. v8.3.0에서 신규 스키마 적용 대상 테이블의 과거(SysMaster DB v8.2.1 이하에서 수집된) 데이터 조회가 불필요한 경우

    2. (SysMaster DB 서버 자원 제한 등의 이유로) 해당 데이터 생성 패치 진행 시 장시간 SysMaster DB 사용이 불가능해지는 상황이 우려되고, 이를 방지해야만 하는 경우

    이때, 사용자는 아래 파라미터 설정을 통해 (마이그레이션 패치를 수행하되,) 패치 수행 대상 데이터 범위(일 단위 기간)를 별도로 설정할 수도 있다.

    • RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH

      • v8.3.0에서 신규 스키마가 적용된 테이블에 대한 v8.2.1 이하 기수집 데이터 중 마이그레이션 대상 데이터 범위(일 단위 기간) 설정

        • 예를 들어, RETENTION_DAY_FOR_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터를 7로 설정(주석 제거)하는 경우, v8.2.1 이하에서 수집된 데이터 중 최근 7일 이내의 데이터에 대해서만 마이그레이션

    상기 설명을 참고하여, 사용자는 운영 환경에 맞는 적절한 파라미터 설정을 선택, 적용할 수 있다.

    3.1 Podman 환경에서 DNS Resolver 설정

    3.2 Podman 환경에서 SysMasterDB 서버와 동일 호스트에 설치된 관제 DB 등록

    설정 방법 (YML 예시 + 관제 DB 접속 주소 변경)

    4. Meta DB 및 Repository DB 파라미터 설정

    참고

    Meta DB 및 Repository DB 파라미터 변경이 필요한 경우, 관련 파라미터 설정은 OpenSQL 사용 가이드를 참조할 수 있다. 그러나 관련 파라미터 설정을 임의 수정하는 경우, SysMaster DB 서버의 정상 동작이 보장되지 않는다. 따라서 위 표에 명시된 파라미터 외 다른 파라미터는, 기본 제공 설정값을 그대로 사용하는 것을 권장한다.

    특히 Podman-compose 환경에서의 설치 시, pg_owner_id와 pg_group_id 값을 직접 설정(변경)하는 경우 정상 동작하지 않을 수 있다. Podman의 컨테이너는 Rootless모드로 동작하고, 컨테이너 내부의 root (owner_id = 0, group_id = 0)가 호스트 머신의 유저에 대응된다. 하지만 OpenSQL이 root 권한 상태에서의 설치 및 기동을 허용하고 있지 않기 때문에 기본 설정값을 사용하는 것을 권장한다.

    또한 Podman-compose 환경에서는 Host OS에서 조회되는 meta, repo 디렉터리의 소유자가 pg_owner_id, pg_group_id에 설정한 UID/GID에 대응하는 사용자명으로 표시되지 않을 수 있다.

    이는 Podman rootless 환경의 user namespace 매핑 방식에 따른 정상 동작이다. Podman rootless 환경에서는 컨테이너 내부의 UID/GID가 Host OS의 UID/GID와 1:1로 동일한 사용자를 의미하지 않을 수 있다.

    예를 들어 Host OS의 sysmaster 사용자가 uid=1008이고 pg_owner_id를 1008로 설정하더라도, 컨테이너 내부의 uid=1008은 Host OS에서 sysmaster가 아닌 subordinate UID로 매핑될 수 있다. 따라서 Host OS에서 meta, repo 디렉터리를 ls -al 명령으로 조회할 경우 소유자가 sysmaster가 아닌 숫자 UID/GID로 표시될 수 있다.

    이는 권한 변경 실패나 제품 오류가 아니며, 컨테이너 내부에서는 매핑된 UID/GID 기준으로 정상 접근된다.

    Host OS에서 숫자 UID/GID로 표시되는 데이터 디렉터리를 chown 등으로 임의 변경하지 않는 것을 권장한다. 임의로 소유자를 변경할 경우, 컨테이너 내부의 UID/GID 매핑과 파일 권한이 불일치하여 Meta DB 또는 Repository DB가 정상 기동하지 않을 수 있다.

    이 수행됨.
  • SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터를 true로 설정(주석 제거)한 경우, 본 파라미터 설정은 무시됨.

  • Performance Trend

    Performance Trend에서는 Overall 차트를 통해 각 지표의 변화 추이를 거시적 시점에서 확인하는 기능과 타임 슬라이스를 사용해 문제가 되는 시점의 초단위까지 세션 및 SQL 지표까지 확인할 수 있는 기능을 제공한다. 이를 통해 문제가 발생한 시점 및 문제 원인 파악까지 한번에 진행할 수 있다.

    Performance Trend 메뉴에 처음 진입하면 Overall 차트를 확인할 수 있다. 각 인스턴스 별 시간 구간 에서 CPU / Memory / 세션 / Wait Class 별 추이를 확인 할 수 있다.

    Overall 차트 소개

    Performance Trend의 Overall 차트에서는 조회 기간 동안의 CPU, Memory, Running Session, Wait Class의 값 변화 추이 및 요약 정보를 보여준다. 이때 시간, 날짜 단위별로 상세 분석할 수 있는 기능을 제공하며, 그래프별로 차트 간격(Interval)과 집계 방식(Aggregation)을 드롭다운 메뉴로 선택하여 확인할 수 있다. 또한 마우스를 보고자 하는 지표에 올리면 해당 지표 값을 확인할 수 있다.

    차트를 클릭시 해당 시점의 1시간 범위 Time Slice 페이지로 전환되어 더 자세한 분석을 진행할 수 있다.

    CPU (Sys + User + IO)

    설정한 시간 구간 동안 CPU 사용량 변화 추이를 나타낸다.

    선택한 분석 기간 동안의 Memory 사용량 추이를 확인할 수 있다.

    선택한 분석 기간 동안의 Running Session Count 추이를 확인할 수 있다.

    선택한 분석 기간 동안 발생한 Wait Class Time의 추이를 확인할 수 있다.


    Performance Chart는 Performance Trend에서 Time Slice 된 기간으로 조회되는 화면으로 CPU, Memory, Session, Wait Class 지표별 상세 분석이 가능하다.

    상단과 중단 차트에서는 카테고리별로 세션 지표, DB 성능 통계 지표, 메모리 사용량, Wait Class 별 퍼센트 분포, 주요 Wait Event 별 Time / Count 지표, Wait Class 별 소모된 시간 정보의 시간 당 변화 추이를 확인할 수 있다.

    상단의 분단위 차트 클릭시 중간에 초 단위의 차트 그래프가 나타난다. 해당 초 단위 차트를 클릭하고 카테고리를 선택하면 해당 시점의 세션 관련 지표, 수행 SQL 관련 지표, Lock 관련 지표, Wait Event 관련 지표를 확인 할 수 있다.

    다음은 Performance Chart 화면 상단에서 제공하는 차트에 대한 설명이다.

    시간 구간별 Running Session들의 정보를 Bar Chart로 제공한다. 이때 오른쪽 상단의 범례를 선택하여 원하는 지표를 선별할 수 있다. 또한 콤보박스를 통해 MIN, MAX, AVG 집계 방식을 선택 할 수 있다.

    지표(Logical Reads, Physical Reads, Redo Entries 등)별로 시간 구간 별 정보를 Bar Chart로 제공한다. 이때 오른쪽 상단의 범례를 선택하여 원하는 지표를 선별할 수 있다. 또한 콤보박스를 통해 MIN, MAX, AVG 집계 방식을 선택 할 수 있다.

    시간 구간별 CPU 사용률 정보를 제공한다. 이때 오른쪽 상단의 범례를 선택하여 System, IO, User Usage의 CPU 사용률에 대한 지표를 선별할 수 있다. 또한 콤보박스를 통해 MIN, MAX, AVG 집계 방식을 선택 할 수 있다.

    시간 구간별 Memory 사용률 정보를 제공한다. 이때 오른쪽 상단의 범례를 선택하여 원하는 지표를 선별할 수 있다. 또한 콤보박스를 통해 MIN, MAX, AVG 집계 방식을 선택 할 수 있다.

    Wait Class를 기반으로 같은 데이터지만 직관적인 분석이 가능하도록 백분율(%) 형태로 보여준다. 이 때 오른쪽 상단의 범례를 선택하여 원하는 지표를 선별할 수 있다. 또한 콤보박스를 통해 MIN, MAX, AVG 집계 방식을 선택 할 수 있다.

    주요 Wait Event에 대한 시간 구간별 정보를 Bar Chart로 제공한다. 해당 시간에 몇 초 동안 Event가 발생했는지 확인할 수 있다. 이때 오른쪽 상단의 범례를 선택하여 원하는 지표를 선별할 수 있다. 또한 콤보박스를 통해 MIN, MAX, AVG 집계 방식을 선택 할 수 있다.

    주요 Wait Event에 대한 시간 구간별 정보를 Bar Chart로 제공한다. 해당 시점에 Wait Event가 몇 번 발생했는지 확인할 수 있다. 이때 오른쪽 상단의 범례를 선택하여 원하는 지표를 선별할 수 있다. 또한 콤보박스를 통해 MIN, MAX, AVG 집계 방식을 선택 할 수 있다.

    Wait Event의 Class화된 정보를 Stacked Bar Chart 형태로 제공한다. 이때 오른쪽 상단의 범례를 선택하여 원하는 지표를 선별할 수 있다. 또한 콤보박스를 통해 MIN, MAX, AVG 집계 방식을 선택 할 수 있다.


    다음은 Performance Chart 클릭 시 하단에 제공되는 테이블 카테고리에 관한 설명이다.

    Performance Chart의 Snapshot 영역에서는 해당 시점의 Running Session의 Wait Class별 요약 정보와 각 세션의 SQL 수행 이력 등 해당 구간의 세션 정보들을 제공한다.

    항목
    설명

    Top Process 카테고리에서는 시간 구간별로 OS Level의 CPU 와 Memory 자원 사용량이 많은 프로세스 정보를 집계해서 프로세스별 사용 Resource를 보여준다.

    항목
    설명

    Performance Chart의 Session 영역에서는 상단의 그래프를 클릭했을 때 해당 시간 구간의 Running Session목록을 보여준다.

    항목
    설명

    Performance Chart의 SQL 영역에서는 상단의 그래프를 클릭했을 때 해당 구간의 각 세션에서 수행한 SQL 목록을 보여준다. SQL ID 클릭시 해당 SQL 에 대한 SQL Detail 페이지로 전환된다.

    항목명
    설명

    Performance Chart의 All SQL 영역에서는 상단의 그래프를 클릭했을 때 해당 시간 구간 동안 수행된 모든 SQL 목록을 보여준다.

    항목
    설명

    Performance Chart의 Lock Tree 영역에서는 상단의 그래프를 클릭했을 때 해당 구간 동안 세션 간의 Transaction Lock으로 인해 발생한 Wait 상황을 Tree 형태로 제공한다.

    항목
    설명

    Performance Chart의 Wait Detail 영역에서는 상단의 그래프를 클릭했을 때 1분 동안 발생한 Wait Event를 집계해서 보여주고, 특정 Wait Event를 클릭하면 Wait Event가 발생했던 세션 목록을 오른쪽에 보여준다.

    항목
    설명

    항목
    설명

    User Name

    현재 사용자 이름

    Program

    세션의 프로그램 이름

    Module

    dbms_application_info.set_module로 지정된 모듈의 이름

    Logical Reads

    세션의 Logical Reads 값

    Physical Reads

    세션의 Physical Reads 값

    Execute Counts

    세션의 Execute Count 값

    Redo Entries

    세션의 Redo Entries 값

    Hard Parse

    세션의 Hard Parse 값

    Wait Event

    세션이 대기하는 Wait Event 타입

    Wait Time

    세션이 Wait Event로 대기한 시간

    Status

    세션의 상태 -READY : 세션 준비 상태 -RUNNING : 세션 Running 상태 -TX_RECOVERING : 트랜젝션 복구 중 상태 -SESS_CLEANUP : 세션 리소스 정리 중 상태 -ASSIGNED : 세션에 스레드가 할당되었지만 아직 준비되지 않은 상태 - CLOSING : 세션이 닫힌 상태 -ROLLING_BACK : PE명세 레벨 트렌젝션의 Slave가 롤백된 상태

    State

    작업 스레드의 상태 -INVALID : 초기화 되지 않음 -NEW : 생성 중 -IDLE : 실행될 준비가 됨 -RUNNING : 실행 중 -WAITING : 내부 메시지 대기 중 -RECV_WAITING : 클라이언트 메시지 대기 중 -STOP_BY_MTHR : 모니터링 프로세스에 의해 중지됨 -DEAD : Dead 상태

    PGA Memory (Session)

    세션의 PGA 메모리 사용량

    SQL Trace

    세션에서 SQL 추적을 사용할지 여부

    Wlock Wait

    세션이 대기 중인 Wait 타입

    Audsid

    세션의 두 번째 시리얼 번호

    User ID

    User ID 정보

    IP Address

    User 접속 IP 주소

    TX_UNDO_BLK_CNT

    Transaction Undo Block 개수

    TX_UNDO_REC_CNT

    Transaction Undo Record 개수

    Command

    현재 실행 중인 SQL 타입 -0 : 실행 중인 SQL 없음 -1 : SELECT -2 : INSERT -3 : UPDATE -4 : DELETE -5 : MERGE -6 : CALL

    Schema

    세션의 스키마

    Thr Type

    세션의 타입 -WTHR : Working thread -CTHR : Control thread -LGWR : Log writing process -CKPT : Checkpoint process -LARC : Log archive -AGENT : Sequence process -MTHR : Monitoring process -DBWR : Datablock writing process -LNW : Log network writing process

    SQL ID

    세션이 수행 중인 SQL의 SQL ID

    Child Number

    세션이 수행 중인 SQL ID의 Child Number 값

    Prev SQL ID

    마지막으로 수행된 SQL의 SQL ID

    Prev Child Number

    마지막으로 수행된 SQL ID의 Child Number 값

    Logon Time

    세션의 로그온 시간

    Client PID

    세션의 Client PID

    PID

    세션이 속한 프로세스의 식별자

    OS User

    연결된 세션의 OS 계정 이름

    Machine

    연결된 세션의 호스트 이름

    Terminal

    연결된 세션의 터미널(TTY) 정보

    Action

    dbms_application_info.set_module/action으로 지정된 액션의 이름

    Client Info

    dbms_application_info.set_client_info로 지정된 client_info의 이름

    Client Identifier

    dbms_session.set_identifier로 지정된 client ID의 이름

    Backup Wait

    Backup Wait로 대기한 시간

    DD Wait

    DD Wait로 대기한 시간

    DDL Wait

    DDL Wait로 대기한 시간

    Internal Wait

    Internal Wait로 대기한 시간

    IO Wait

    IO Wait로 대기한 시간

    PSM Wait

    PSM Wait로 대기한 시간

    Recovery Tac Wait

    Recovery Tac Wait로 대기한 시간

    Recovery Wait

    Recovery Wait로 대기한 시간

    Redo Tac Wait

    Redo Tac Wait로 대기한 시간

    Redo Wait

    Redo Wait로 대기한 시간

    Resource Wait

    Resource Wait로 대기한 시간

    Session Wait

    Session Wait로 대기한 시간

    Space Wait

    Space Wait로 대기한 시간

    Sql Tac Wait

    Sql Tac Wait로 대기한 시간

    Standby Wait

    Standby Wait로 대기한 시간

    Wlock Wait

    Wlock Wait로 대기한 시간

    Xa Wait

    Xa Wait로 대기한 시간

    CPU (%)

    프로세스 레벨의 CPU 사용률

    Memory

    메모리 사용량

    Running Time

    프로세스의 Running Time

    Last Time

    프로세스의 Last Time

    Logon Time

    세션의 로그온 시간

    Elapsed Time

    세션의 현재 수행 중인 SQL의 Elapsed Time

    Machine

    연결된 세션의 호스트 이름

    Program

    세션의 프로그램 이름

    Module

    dbms_application_info.set_module로 지정된 모듈의 이름

    Action

    dbms_application_info.set_module/action으로 지정된 액션의 이름

    OS User

    연결된 세션의 OS 계정 이름

    IP Address

    User 접속 IP 주소

    CPU Time

    세션의 CPU 사용 시간

    Logical Reads

    세션의 Logical Reads 값

    Physical Reads

    세션의 Physical Reads 값

    Execute Counts

    세션의 Execute Count 값

    Redo Entries

    세션의 Redo Entries 값

    Hard Parse

    세션의 Hard Parse 값

    Backup Wait

    Backup Wait로 대기한 시간

    DD Wait

    DD Wait로 대기한 시간

    DDL Wait

    DDL Wait로 대기한 시간

    Internal Wait

    Internal Wait로 대기한 시간

    IO Wait

    IO Wait로 대기한 시간

    PSM Wait

    PSM Wait로 대기한 시간

    Recovery Tac Wait

    Recovery Tac Wait로 대기한 시간

    Recovery Wait

    Recovery Wait로 대기한 시간

    Redo Tac Wait

    Redo Tac Wait로 대기한 시간

    Redo Wait

    Redo Wait로 대기한 시간

    Resource Wait

    Resource Wait로 대기한 시간

    Session Wait

    Session Wait로 대기한 시간

    Space Wait

    Space Wait로 대기한 시간

    Sql Tac Wait

    Sql Tac Wait로 대기한 시간

    Standby Wait

    Standby Wait로 대기한 시간

    Wlock Wait

    Wlock Wait로 대기한 시간

    Xa Wait

    Xa Wait로 대기한 시간

    Elapsed Time

    현재 수행 중인 SQL의 Elapsed Time

    Execute Counts

    SQL 실행 횟수

    CPU Time

    CPU 사용 시간

    Logical Reads

    Memory I/O로 읽은 Block 수

    Physical Reads

    Block I/O로 읽은 Block 수

    Redo Entries

    Redo Entries의 개수

    Hard Parse

    SQL의 Hard Parse 값

    Application Wait

    Application Wait로 대기한 시간

    Cache Wait

    Cache Wait로 대기한 시간

    Cluster Wait

    Cluster Wait로 대기한 시간

    Concurrency Wait

    Concurrency로 대기한 시간

    Other Wait

    Other Wait로 대기한 시간

    SQL Wait

    SQL Wait로 대기한 시간

    System IO Wait

    System I/O Wait로 대기한 시간

    User IO Wait

    User I/O Wait로 대기한 시간

    SQL ID

    세션이 수행 중인 SQL의 SQL ID

    Child Number

    세션이 수행 중인 SQL의 Child Number

    SQL Text

    SQL 내용

    Elapsed Time

    현재 수행 중인 SQL의 Elapsed Time

    Start Time

    SQL의 시작 시간

    End Time

    SQL의 끝난 시간

    Log Time

    해당 SQL 수행이 시스마스터에 기록된 시간

    Machine

    연결된 세션의 호스트 이름

    Module

    dbms_application_info.set_module로 지정된 모듈의 이름

    Program

    세션의 프로그램 이름

    User Name

    현재 사용자 이름

    OS User

    연결된 세션의 OS 계정 이름

    CPU Time

    세션의 CPU 사용 시간

    Logical Reads

    세션의 Logical Reads 값

    Physical Reads

    세션의 Physical Reads 값

    Execute Counts

    세션의 Execute Count 값

    Redo Entries

    세션의 Redo Entries 값

    Hard Parse

    세션의 Hard Parse 값

    Backup Wait

    Backup Wait로 대기한 시간

    DD Wait

    DD Wait로 대기한 시간

    DDL Wait

    DDL Wait로 대기한 시간

    Internal Wait

    Internal Wait로 대기한 시간

    IO Wait

    IO Wait로 대기한 시간

    PSM Wait

    PSM Wait로 대기한 시간

    Recovery Tac Wait

    Recovery Tac Wait로 대기한 시간

    Recovery Wait

    Recovery Wait로 대기한 시간

    Redo Tac Wait

    Redo Tac Wait로 대기한 시간

    Redo Wait

    Redo Wait로 대기한 시간

    Resource Wait

    Resource Wait로 대기한 시간

    Session Wait

    Session Wait로 대기한 시간

    Space Wait

    Space Wait로 대기한 시간

    Sql Tac Wait

    Sql Tac Wait로 대기한 시간

    Standby Wait

    Standby Wait로 대기한 시간

    Wlock Wait

    Wlock Wait로 대기한 시간

    Xa Wait

    Xa Wait로 대기한 시간

    Elapsed Time

    세션의 Running 시간

    Status

    세션의 Holder 및 Waiter 정보

    Session Status

    세션의 상태

    Wait Time

    대기한 시간

    User Name

    세션 사용자 이름

    Module

    세션의 모듈 이름

    Program

    세션의 프로그램 이름

    Machine

    세션의 호스트 이름

    IP Addr

    User 접속 IP 주소

    SQL ID

    세션이 수행 중인 SQL의 SQL ID

    Child Number

    세션이 수행 중인 SQL Plan의 Child Number 값

    Wait Event

    세션의 Wait Event 이름

    Type

    Lock 타입

    ID1

    Lock ID1

    ID2

    Lock ID2

    Mode

    Holder 가 점유한 Lock 모드 (Waiter는 항상 0)

    Request

    Waiter 가 요청한 Lock 모드 (Holder는 항상 0)

    Count

    Wait Event 발생 횟수

    Time

    Wait Event 대기 시간

    Count

    Wait Event 발생 횟수

    User Name

    현재 사용자 이름

    Module

    dbms_application_info.set_module로 지정된 모듈의 이름

    OS User

    연결된 세션의 OS 계정 이름

    Machine

    연결된 세션의 호스트 이름

    Program

    세션의 프로그램 이름

    SID

    세션의 ID

    Serial #

    세션의 시리얼 번호

    Elapsed Time

    세션의 현재 수행 중인 SQL의 Elapsed Time

    PID

    프로세스의 OS PID 값

    Command

    프로세스의 OS Command

    User

    OS 사용자 이름

    SID

    세션의 ID

    Serial #

    세션의 시리얼 번호

    User Name

    현재 사용자 이름

    SQL ID

    수행 중인 SQL의 SQL ID

    Child Number

    수행 중인 SQL의 Child Number 값

    SQL Text

    SQL 내용

    SQL ID | Child Number

    세션이 수행 중인 SQL의 SQL ID 와 Child Number 값 쌍

    SID

    세션의 ID

    Serial #

    세션의 시리얼 번호

    Instance

    데이터베이스 인스턴스 번호

    SID

    세션의 SID

    Serial #

    세션의 시리얼 번호

    Name

    Wait Event 이름

    Desc

    Wait Event 상세 설명

    Wait Class

    Wait Class 이름

    SID

    세션의 ID

    Serial #

    세션의 시리얼 번호

    Time

    Wait Event 대기 시간

    Memory

    Running Session

    Wait Class

    참고

    Wait Class란 Tibero에서 작업 중 발생한 각 Wait Event들을 유형별로 정리한 것이다. 예를 들어 IO Class의 경우 IO 관련 작업을 할 때 발생한 Wait Event에서 소모된 시간 및 Wait Event 발생 횟수를 집계 것이다.

    Performance Chart 소개

    Session

    Stat

    CPU

    Memory

    Wait (%)

    Wait

    Wait (Count)

    Wait Class

    Performance Table 소개

    Snapshot

    주의

    Session 정보 수집에 사용하는 티베로 라이브러리 버전에 따라 일부 지표 (Username, Program, Module, Schema, OS User, Machine, Terminal 등) 가 수집되지 않을 수 있다.

    Top Process

    Session

    참고

    Snapshot과 Session의 차이:

    • Snapshot: 각 세션의 매 초당 상태 변화를 확인하기 위한 카테고리

    • Session: 1분 이상의 구간동안에서 세션의 전체적인 지표를 확인하기 위한 카테고리.

    참고

    Session은 해당 시간 구간에서 Session의 전체적인 지표를 나타내는 지표이다.

    Session의 경우에는 해당 시간 구간에서 Session의 전체적인 지표를 파악할 수 있다.

    SQL

    All SQL

    Lock Tree

    Wait Detail

    Wait Event 영역

    Wait Session 영역