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...
Common User는SysmasterDB에서 얻을 수 있는 기본적인 권한이다.
유저는 Super Admin 또는 Admin으로부터 권한(Configurable Privileges)을 할당받는다.
만약 아직 소속된 그룹이 존재하지 않다면, Undefined로 로그인이 가능하고, 로그인 후에는 My Account를 제외한 모든 페이지에서 정보를 열람할 수 없다.
GNB 우측의 버튼을 통해 pdf 형식의 매뉴얼을 내려받을 수 있다.
글로벌 내비게이션 바에서 [Realtime] > [Usage Monitoring] > [Temp Usage] 를 클릭하면 Temp Usage 페이지가 열린다.
Temp Usage 페이지에서는 Session Temp 사용량 정보를 보여준다. 효율적인 실행 계획 또는 잘못 쓰여진 SQL Statement로 인하여 과도하게 Temporary Tablespace 영역을 사용하고 있는 세션을 모니터링할 수 있다.
다음은 Session Temp Usage 페이지에서 제공하는 항목에 대한 설명이다.
SID
세션의 SID
Serial#
세션의 시리얼 번호
User
세션 사용자 이름
Program
세션의 프로그램 이름
Module
세션의 모듈 이름
Tablespace
사용 중인 Temp 테이블스페이스 이름
Used/Total Size
사용 중인 Temp 크기 현황
Extents
Extent 수
현재 session에서 수행중인 SQL과 동일한 SQL의 과거 수행 이력 및 통계를 보여준다.
현재 session에서 수행 중인 SQL과 동일한 SQL이 과거에 수행되었던 이력을 조회하기 위하여, 원하는 기간을 선택하여 조회할 수 있다.
현재 session에서 수행 중인 SQL 전문을 보여준다.
현재 session에서 수행 중인 SQL에 대한 Plan을 확인할 수 있는 화면이다. 이때 SQL Plan을 Tree 구조로 보여준다.
현재 수행 중인 SQL과 동일한 SQL들의 과거 이력들의 통계 정보를 보여준다. Summary, execute count, physical reads, logical reads, plan history, sql trace 항목들을 보여준다.
Summary 탭 화면에서는 분석 구간 동안 stat 지표 및 wait event 리스트와 각 wait event별 wait time의 값을 확인할 수 있다.
Execute Count 탭 화면에서는 시간 단위별 Execute Count를 차트 형태로 확인할 수 있다.
Physical Reads 탭 화면에서는 시간 단위별 Physical Reads를 차트 형태로 확인할 수 있다.
Logical Reads 탭 화면에서는 1분 단위의 Logical Reads를 차트 형태로 확인할 수 있다.
Plan History 탭 화면에서는 같은 쿼리에 대해 Plan별 비교가 가능하다.
SQL Trace 탭 화면에서는 조회 기간 동안의 SQL 수행 이력(Trace 정보)을 확인할 수 있다.
글로벌 내비게이션 바에서 [Analysis] > [Usage Analysis] > [Filesystem Usage] 메뉴를 클릭하면 Filesystem Usage 화면이 열린다.
이 화면에서는 지정한 기간 동안의 파일 시스템 이름별 서버에 마운트된 크기의 변화량을 확인할 수 있다.
다음은 Filesystem Usage 화면에서 제공하는 항목에 대한 설명이다.
Statistics
Statistics 지표 확인
Wait Class
분석 구간 동안의 wait class 목록과 각 wait class별 wait time의 값을 확인
Wait Event
Wait class에서 선택한 항목에 대한 상세 내역을 확인
Mounted On
마운트 영역 이름
FileSystem Name
파일 시스템 이름
Earlier Time
이전 시점
Later Time
이후 시점
Earlier Free/Total Size
Filesystem Usage 에서 특정 데이터 클릭 시 해당 파일 시스템의 시간별 크기 변화를 상세하게 확인할 수 있다. 이때 오른쪽의 그래프를 통해 크기 변화량을 한눈에 파악할 수 있다.
다음은 Filesystem Info 화면에서 제공하는 항목에 대한 설명이다.
Log Time
수집 시간
Used
사용량
Free
글로벌 내비게이션 바에서 [Analysis] > [History Analysis] > [Alert Event Analysis] 페이지를 클릭하면 Alert Analysis 페이지가 열린다.
Alert Event Analysis 페이지에서는 SysMaster DB 8 제품의 사용자가 설정한 알림 및 시스템 알림 규칙 대한 알림 발생 이력을 확인할 수 있다. 또한 발생한 알림에 대한 확인 여부도 확인할 수 있다.
시간 범위를 설정하여 사용자 설정 알림 발생 정보를 차트로 조회하여 볼 수 있다.
시간 범위를 설정하여 사용자 설정 알림 발생 정보를 차트로 조회하여 볼 수 있다.
User created 탭과 System 탭 차트의 특정 시간을 클릭하여 해당 시간의 알림 목록을 조회할 수 있다.
Alert Trigger
알람 트리거 이름
Instance
알림이 발생한 인스턴스 이름
Confirm
사용자 확인 여부
User Comment
알림 확인 시 사용자가 작성한 메시지 내용
Alert Time
알림이 발생한 시각
Alert Name
알림 이름
Alert Level
알림 레벨 (INFO, WARNING, ERROR)
이전 시점의 여유 공간 현황
Later Free/Total Size
이후 시점의 여유 공간 현황
Earlier Used/Total Size
이전 시점의 사용량 현황
Later Total/Total Size
이후 시점의 사용량 현황
사용 가능한 양
현재 session의 상태 정보, session에서 수행중인 SQL 정보들을 보여준다.
현재 session의 wait event 발생 정보이다.
Wait event
현재 session에서 발생한 wait event 번호
현재 session에서 수행 중인 SQL 전문을 보여준다.
현재 session에서 수행 중인 SQL에 대한 Plan을 확인할 수 있는 화면이다. 이때 SQL Plan을 Tree 구조로 보여준다.
현재 session 상태 지표이다.
상태 지표 별 항목은 다음과 같다.
상태 지표 목록은 다음과 같다.
Total Session Count 화면에서는 All Session Count에서 선택한 총 세션의 갯수를 확인할 수 있다.
다음은 Total Session Count 화면에서 제공하는 항목에 대한 설명이다.
User Name
글로벌 내비게이션 바에서 [Analysis] > [Performance Analysis] > [Top N Performance] 메뉴를 클릭하면 Top N Performance 화면이 열린다.
Top N Performance 화면에서는 검색 기간 동안에 상위에 존재하는 SQL에 대해 확인할 수 있다.
이때 Category와 Item을 설정하면 선택한 Item에 대해 Value를 확인할 수 있다. 또한 Category에서 값을 선택하여 더블 클릭을 하면 SQL에 대한 정보를 확인할 수 있고, SQL을 선택하여 더블 클릭하면 SQL Detail 화면으로 연계된다.
다음은 탭 화면의 각 영역에 대한 설명이다.
데이터 집계 기준으로 'Machine', 'Module', 'Program', 'Username', 'OS user'가 있으며 'SQL' 선택 시 집계 기준을 설정하지 않는다.
집계 항목으로 'Logical Reads', 'Physical Reads', 'Redo Entries', 'Execute Count' 등이 있다.
사용자 이름
Running Session
Running Session 수



Prev SQL ID
세션이 이전에 수행했던 SQL의 SQL ID
Redo Entries의 개수
(Redo Entries : 세션이 Log Buffer에 기록한 Redo 레코드)
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한 횟수
Wait time
현재 session에서 발생한 wait event로 대기한 시간
SQL ID
세션이 수행 중인 SQL의 SQL ID
Prev Child Number
세션이 이전에 수행했던 SQL의 Child Number 값
Child Number
∑
세션의 Statistics 지표별 누적 값
Delta
세션의 Statistics 지표별 새로고침 전, 후의 변경 값
Value/Sec
CONSISTENT_BLOCK_GETS_READONLY_PIN
Readonly block에 대해 consistent block get을 수행한 횟수
TOTAL_PARSE_COUNT
Parse 총 횟수
세션이 수행 중인 SQL의 Child Number 값
Delta 값을 새로고침한 시간(초 단위)으로 나누어 계산한 값
REDO_ENTRIES
Category와 Item 선택을 통해 모니터링 하고자 하는 기간에서의 성능 지표를 확인할 수 있다. 이때 영역 오른쪽 상단의 콤보박스를 통해 SQL Category를 제외한 Category에 대해 정렬 리스트의 개수(ALL / Top 20 / Top 30 / Top 50)를 지정할 수 있다.
다음은 Category / Module 영역에서 제공하는 항목에 대한 설명이다.
Module
Category에서 선택한 값에 대한 정보
– Module : 모듈 이름 – Program : 프로그램 이름 – Username : 데이터베이스 사용자 이름 – OS user : OS 사용자 이름 – Machine : 관제 DB hostname
Value
선택한 기준(Category, Item)에 대한 총합
Ratio (%)
Category / Module에서 발생한 SQL 중 Item(Logical Reads) 값(Value)이 높은 순서대로 출력한다. 이 때 해당 SQL을 더블 클릭하면 SQL Detail 화면으로 넘어간다.
다음은 MODULE / SQL 영역에서 제공하는 항목에 대한 설명이다.
SQL ID | Child Number
SQL ID와 SQL의 Child Number
SQL Text
SQL 구문
Value
글로벌 내비게이션 바에서 [Analysis] > [Usage Analysis] > [Segment Usage] 메뉴를 클릭하면 Segment Usage 화면이 열린다.
조회하기 원하는 날짜를 선택할 수 있는 기능이 있다. 조회한 기간의 Segment usage 목록에 간단하게 사용량 증감을 보여준다.
이 화면에서는 지정한 기간 동안의 세그먼트 이름별 크기의 변화량을 확인할 수 있다.
다음은 Segment Usage 화면에서 제공하는 항목에 대한 설명이다.
Segment Usage Header에는 데이터 조회를 위한 필터링을 선택할 수 있는 기능이 있다.
Order by 우측의 드롭박스를 이용해 원하는 column으로 정렬할 수 있다.
그 오른쪽의 드롭박스를 이용해 사용자가 보기를 원하는 top 개수를 설정할 수 있다.
Segment Usage 에서 특정 데이터 클릭 시 해당 세그먼트의 일자별 크기 변화를 상세하게 확인할 수 있다. 이때 오른쪽의 그래프를 통해 크기 변화량을 한눈에 파악할 수 있다.
다음은 Segment Info 화면에서 제공하는 항목에 대한 설명이다.
Earlier Time
이전 시점
Later Time
이후 시점
Earlier Size
이전 시점의 크기
Later Size
이후 시점의 크기
Increment
Log Time
수집 시간
Partition Count
파티션 수
Size
각 항목별 사용 비율
SQL별 선택한 기준(Category, Item)에 대한 값
Ratio(%)
SQL별 비율
All Session Flow 화면에서는 동일한 DB 사용자는 제외하고, DB 사용자별 전체 세션 갯수를 그래프로 확인할 수 있다. 이이때 오른쪽 상단의 차트 간격(Interval)과 집계 방식(Aggregation)을 드롭다운 메뉴로 선택하여 확인할 수 있다.
이전 시점 대비 이후 시점 크기 증감량
Tablespace Name
테이블스페이스 이름
Owner
Object의 소유자
Segment Name
세그먼트 이름
Segment Type
세그먼트 종류
Partition Name
파티션 이름
Earlier Extents
이전 시점의 Extent 수
Later Extents
이후 시점의 Extent 수
Earlier Blocks
이전 시점의 Blocks
Later Blocks
이후 시점의 Blocks
크기
Blocks
Block 수










New Plan List 화면에서는 신규 Plan 이력을 확인할 수 있다.
다음은 New Plan List 화면에서 제공하는 항목에 대한 설명이다.
SQL ID
SQL ID




SQL Text
SQL 구문
Child Number
SQL의 Child Number
















사용하고자 하는 엔진에 따라 도커 혹은 파드맨을 설치한다.
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가 설치되었는지 확인한다.
Podman-compose
"Install from a package" 과정에 따라 패키지 별 설치 파일을 별도로 배포해 설치한다.
이때 각 패키지 별로 가장 최신 버전을 설치할 것을 권장한다.
다음은 Centos 7, x86-64 기준의 설치 파일 경로 예시이다.
Podman-compose 는 podman 을 docker-compose 처럼 사용할 수 있게 해주는 툴이다.
Python 기반으로 만들어져 있어 pip를 사용해서 설치한다
sudo pip3 install podman-compose
정상적으로 podman-compose가 설치되었는지 확인한다.
podman-compose version
Kubernetes
아래의 주소에서 Kubernetes 설치 방법을 확인한 후 운영체제에 맞는 Kubernetes를 설치한다.
추가적으로 아래의 주소에서 Kubectl 설치 방법을 확인한 후 운영체제에 맞는 Kubectl을 설치한다.
GNB 우측 상단에 있는 아이콘을 누르면 setting에 접근할 수 있다.
settings 메뉴의 좌측 상단에 있는 all groups 메뉴를 누르고 하단에 있는 create 버튼을 누르면 group을 생성할 수 있다.
All Groups는 슈퍼 어드민에게만 제공되는 메뉴이다.
그룹 생성 시 필요한 항목은 다음과 같다.
Group Name
생성할 그룹의 이름을 지정한다.
Instance
그룹에 할당될 인스턴스를 지정한다.
Member&Name
그룹에 넣을 유저를 id기준으로 지정한다.
Role
그룹에서 해당 유저의 역할(Role)을 지정한다.
Description
그룹에 대한 설명을 작성한다.



글로벌 내비게이션 바에서 [Analysis] > [History Analysis] > [Search SQL Text] 메뉴를 클릭하면 Search SQL Text 화면이 열린다. Search SQL Text 화면에서는 지정한 기간 동안의 SQL 목록을 확인할 수 있다.
Search SQL Text 화면의 SQL 목록에서 특정 열을 더블 클릭하면 해당 SQL의 상세 정보를 확인할 수 있 는 화면이 열린다.
Instance Monitoring 페이지의 Layout Tab 영역에서 제공되는 모니터링 지표 차트의 기능과 종류에 대해 설명한다.

Instance Monitoring 페이지의 Layout Tab 영역에서는 다양한 지표를 사용자가 원하는 형태로 모니터링 할 수 있다.
Instance Monitoring 페이지의 Layout Tab 영역에서 제공되는 기본 기능에 대해 설명한다.
사용자 편의를 위해, Instance Monitoring 페이지에서는 Default Layout을 제공한다.
Default Layout에 포함된 모니터링 지표 목록은 다음과 같다.
[System] CPU Usage
[Session] Session Count (Running, Active, Inactive)
[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에서 비활성화된다. 해당 인스턴스 이름을 한 번 더 클릭하면, 다시 해당 인스턴스 그래프가 차트에 표출된다.

Instance Monitoring 페이지에서는 사용자가 다양한 지표를 원하는 형태의 레이아웃으로 설정하여, 실시간 모니터링할 수 있다.
Instance Monitoring 페이지는 좌측 사이드 패널로 제공되는 Instance Overview 영역과, 페이지 전반을 구성하는 Layout Tab 영역으로 이루어져 있다.







SysMasterDB 8에 접속하기 위해서는 웹 브라우저에 접속한 후 로그인을 해야 한다.
로그인 화면에서 사용자 ID와 패스워드를 입력한 후 [SIGN IN] 버튼을 클릭한다. 이때 로그인에 성공하면 그룹 선택 화면으로 이동한다.
SysMaster DB 8 설치 시 기본적으로 관리자 권한을 가지는 계정을 생성한다. 이때 기본으로 제공되는 관리자 계정의 아이디와 패스워드는 모두 admin이다.
만약 로그인에 실패할 경우 "Login Failed" 다이얼로그를 통해 아이디와 비밀번호를 확인하라는 메시지를 출력하고, 5번 연속 실패할 경우 10분 뒤 로그인하라는 메시지를 출력한다.
현재 모니터링 중인 그룹 내 인스턴스들의 각종 지표를 확인할 수 있다.
커스터마이징을 통해 시스마스터에서 지원하는 모든 실시간 차트와 세션, 락 모니터링 테이블을 원하는 위치와 크기로 배치할 수 있다.
차트를 클릭할 시 원하는 화면으로 이동이 가능하다.
그룹 내 모든 인스턴스에서 발생하는 SQL 수행의 응답 시간 (Response Time)을 히트맵 형태로 표시한다.
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의 칼럼 내용은 을 참조하면 된다.
각 인스턴스별로 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 버튼을 누르면 변경 사항을 되돌린다.
페이지로 연결된다.


Super Admin 유저는 아래와 같이 Global Navigation Bar (GNB) > Profile > About 클릭 시 화면에 표출되는 모달을 통해 현재 서비스에 적용된 라이선스 정보를 확인할 수 있다.
아래는 About 모달 예시 화면으로, License Info 영역을 통해 라이선스 타입, 만료 기한, 잔여 코어 수를 확인할 수 있다.
추가로, , 페이지에서도 라이선스 정보 확인이 가능하다.







모니터링 중인 그룹에 포함된 DB 인스턴스들의 상태 및 인스턴스의 Alert 발생 현황을 확인하는 영역이다.
각 인스턴스당 색상이 할당되며, TAC / TSC 클러스터일 경우 묶여서 배치된다.
Instance Overview에서는 각 인스턴스의 상태를 한눈에 확인할 수 있다. 우측 Alert 항목에 Alert 항목이 보일 경우 Normal, 이며, Agent Disconnected 혹은 DB Down일 경우 해당 상태가 우측에 표시된다.
우측 화살표 버튼을 클릭하여 Instance Overview 메뉴를 숨기거나 펼칠 수 있다.
모니터링 대상 DB의 상태에는 Normal, Agent Disconnected, Down이 있다.
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 메뉴로 이동한다.
: 해당 인스턴스에 대한 Instance Monitoring 메뉴로 이동한다.
: 해당 인스턴스가 TSC일 경우 해당 인스턴스에 대한 TSC Monitoring 메뉴로 이동한다.
본 절에서는 Tablespace, File, Temp 스페이스, Undo 스페이스 사용 현황을 실시간 모니터링 할 수 있는 Usage Monitoring에 대해 설명한다.
특정 session에 대한 현재 수행 중인 SQL 및 wait event 상황등 상세 정보를 모니터링 할 수 있다. session 목록에서 상세 보기를 원하는 session의 SID를 클릭하면 Session 상세보기 페이지가 열린다.
Session Monitoring 페이지에서 한 row로 보여 주었던 항목들이다. Session Monitoring 화면과 마찬가지로 refresh, auto refresh, kill session 기능을 제공한다.


전체
: Alert 를 생성 할 수 있다.
: 모니터링 DB 인스턴스 및 장비에 관한 상세 정보를 제공한다.
주의
방화벽 설정 변경 등의 이유로 TPM Agent 데이터 수집 전송이 멈췄을 경우 Normal 상태에서 아무런 지표가 보이지 않는 현상이 있을 수 있다. 따라서 Normal 상태인데 실시간 지표가 보이지 않는다면, 관제 DB 머신과 TPM Agent 로그를 확인해 볼 필요가 있다.




본 장에서는 데이터베이스의 실시간 상태 모니터링 기능을 제공하는 Realtime Monitoring에 대해 설명한다.
Main Monitoring - DB 세션 현황, DB 머신의 CPU 및 메모리 사용량 등 DB 실시간 지표들을 확인할 수 있다.
Usage Monitoring - 테이블스페이스, 파일, UNDO 및 TEMP 공간의 실시간 상태를 확인할 수 있다.
Lock Monitoring - DB 세션 간의 Lock 현황을 파악하고 문제를 분석할 수 있다.
- TSC 구성 및 네트워크 현황, 복구 현황을 실시간 모니터링할 수 있다.
본 장에서는 SysMasterDB 접속 이후의 사용 방법을 다음과 같은 단계로 설명한다.
SysMasterDB 접속하기 - 로그인 및 그룹 선택 방법에 대해 설명한다.
권한 설정하기 - 그룹과 권한에 대해 설명한다.
User 생성하기 - 유저 생성 방법에 대해 설명한다.
- 관제 DB 등록 방법에 대해 설명한다.
- 그룹 생성하는 방법에 대해 설명한다.
CPU / Memory 파이 차트에 마우스를 호버하여 상세 정보를 확인할 수 있다.
Lock Waiter: 인스턴스가 락을 기다리고 있는 세션 갯수를 표시한다.
Tablespace: 사용량이 90% 이상인 테이블스페이스 갯수를 표시한다. 하단에 스크롤 가능한 테이블을 통해 테이블스페이스 사용 현황을 표시한다.
Running Session: 지난 5분간의 Running Session 추이를 Area 차트로 표시하며 현재 Running Session의 갯수를 우상단에 표시한다.
관제 인스턴스 DB가 다운 상태일 경우 마지막에 Normal 상태였던 시간을 표시한다.
Agent Disconnected 상태일 경우 위와 같이 표시되며 카드뷰 마지막에 정렬된다.
글로벌 내비게이션 바에서 [Realtime] > [Lock Monitoring] 메뉴를 클릭하면 Lock Monitoring 화면이 열린다.
Lock Monitoring 화면에서는 세션간의 Lock 정보를 Tree 형식으로 보여준다. 따라서 Lock을 점유하고 있는 Holder Session과 Lock을 획득하기 위해 기다리고 있는 Waiter Session을 모니터링 할 수 있다. 그리고Lock을 점유하고 있는 세션을 모니터링할 수 있으며, 특정 세션을 종료 시킬 수 있다.
다음은 Lock Tree Table 화면에서 제공하는 항목에 대한 설명이다.
Layout 목록에서 특정 Layout의 더보기 버튼 클릭 시 제공되는 Delete 기능을 통해 기존 Layout을 삭제할 수 있다.
본 장에서는 SysMaster DB 8 설치 과정을 설명한다.





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을 해제할 수 있다.
Super Admin과 Admin은 settings에서 유저를 생성할 수 있다.
User ID
유저의 ID
Group&Role
유저를 생성하기 위해서는 id 중복 체크를 필수적으로 진행해야 한다.
비밀번호는 8자 이상, 문자,숫자,특수문자를 넣어서 생성해야 한다.
Total Session Info 화면에서는 All Session Count에서 선택한 세션의 정보를 확인할 수 있다.
다음은 Total Session Info 화면에서 제공하는 항목에 대한 설명이다.
User Name
선택한 기간 하루 동안의 시간 단위 차트를 제공한다. 이때 Heatmap Trend 화면 상단의 [OS], [STAT], [WAIT(TIME)], [WAIT(COUNT)], [SESSIONS] 버튼을 사용해서 각 지표의 사용량에 대한 Overview를 확인할 수 있다.
OS 관련 항목('CPU Idle', 'CPU Sys', 'Memory Usage' 등)의 사용량에 대한 시간 단위 차트를 조회한다.
이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.
Stat 관련 항목('Logical Reads', 'Physical Reads', 'Execute Count' 등)의 사용량에 대한 시간 단위 차트를 조회한다.
이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.
Wait Time 관련 항목('WE_JC_BUF_DISK_READ_TIME', 'WE_BUF_FREE_TIME' 등)의 사용량에 대 한 시간 단위 차트를 조회한다.
이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.
Wait Count 관련 항목('WE_JC_BUF_DISK_READ_COUNT', 'WE_BUF_FREE_COUNT' 등)의 사용량 에 대한 시간 단위 차트를 조회한다.
이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.
Sessions 관련 항목('Active Session', 'Lock Waiter Session')의 사용량에 대한 시간 단위 차트를 조회한다.
이때 지표 선택 버튼 영역 오른쪽의 콤보박스를 사용하여 조회할 리소스를 변경할 수 있다.
Usage Analysis에서는 지정한 기간 동안의 변화량을 확인할 수 있다.
지정한 기간 동안의 테이블스페이스 이름별 크기의 변화량을 확인할 수 있다.
지정한 기간 동안의 파일 시스템 이름별 서버에 마운트된 크기의 변화량을 확인할 수 있다.
지정한 기간 동안의 세그먼트 이름별 크기의 변화량을 확인할 수 있다.
지정한 기간 동안 시간 단위의 Temp 크기의 변화량을 확인할 수 있다.
지정한 기간 동안 시간 단위의 Undo 크기의 변화량을 확인할 수 있다.
CPU / Memory 파이 차트에 마우스를 호버하여 상세 정보를 확인할 수 있다.
Lock Waiter: 인스턴스가 락을 기다리고 있는 세션 갯수를 표시한다.
Tablespace: 사용량이 90% 이상인 테이블스페이스 갯수를 표시한다. 마우스 호버시 사용룰 내림차순으로 10개 테이블스페이스에 대해 사용 현황을 표시한다.
Running Session: 지난 5분간의 Running Session 추이를 Area 차트로 표시하며 현재 Running Session의 갯수를 우상단에 표시한다.
관제 인스턴스 DB가 다운 상태일 경우 마지막에 Normal 상태였던 시간을 표시한다.
Agent Disconnected 상태일 경우 위와 같이 표시되며 카드뷰 마지막에 정렬된다.
Super Admin은 SysmasterDB의 모든 기능을 수행할 수 있는 최고 관리자를 의미한다.
Super Admin 계정은 다음과 같은 권한을 기본적으로 보유한다.
Dashboard에서 인스턴스 등록, 수정, 삭제
Settings > All Groups 메뉴를 통한 그룹 생성, 수정, 삭제
Settings > All Users 메뉴를 통한 SysMasterDB에 등록된 모든 사용자 생성, 수정, 삭제
Super Admin은 SysmasterDB에서 단 한 명만 존재한다.
Super Admin 유저의 경우, Instance Info의 더보기[···] 메뉴를 통해 인스턴스 수정 페이지에 진입할 수 있다.
아래 예시 화면은 인스턴스 수정 페이지로, 기존 등록된 인스턴스 정보를 변경한 후 연결 테스트 및 적용할 수 있다.
항목별 상세 설명은 Instance 등록하기를 참고한다.
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 상태였던 시간을 표시한다.
지정한 기간 동안에 변경된 SQL Plan에 대해 비교 분석 기능을 제공한다.
각 관제 DB에서의 세션 접속 추이와 각 시점의 세션 접속 현황을 제공한다.
주어진 기간동안 Hard Parse가 발생한 SQL 리스트를 확인 할 수 있다.
사용자가 설정한 알림 및 시스템 알림 규칙 대한 알림 발생 이력을 확인할 수 있다
Invalid Objects Count 데이터와 Invalid Objects 상세 정보를 확인할 수 있다.
모니터링 DB 인스턴스 및 장비에 관한 상세 정보를 제공한다.
글로벌 내비게이션 바에서 [Analysis] > [Usage Analysis] > [Tablespace Usage] 메뉴를 클릭하면 Tablespace Usage 화면이 열린다.
이 화면에서는 지정한 기간 동안의 테이블스페이스 이름별 크기의 변화량을 확인할 수 있다.
다음은 Tablespace Usage 화면에서 제공하는 항목에 대한 설명이다.
Docker-compose 및 Podman-compose 환경에서 SysMaster DB 8.3를 기동, 로그 확인, 종료, 초기화하는 방법이다.
지정된 경로 하위에 발급받은 라이선스 파일을 배치한다. 라이선스 파일명과 경로는 아래와 같으며,
Alert Alarm 항목에서는 아직 Confirm 처리되지 않은 Alert들의 리스트를 나타낸다. Alert는 유저가 직접 생성한 기준에 따라 발생한 User-created 카테고리와 자동으로 설정되어 전체 인스턴스에 대해서 발생하는 System 카테고리로 나뉘어져 있다.
각 Alert에 대해 Confirm 처리를 하거나, 우상단에 Confirm All 버튼을 눌러야 Alert Event를 제거할 수 있다.
Group : Alert 등록된 그룹명
Instance: Alert가 발생한 인스턴스 명
SysMaster DB 에서 관제 데이터베이스 등록 시 유저 정보를 입력하게 된다. 기존에 생성된 유저를 사용할 수 있고, 새로운 유저를 생성해 사용할 수도 있다. 이때 유저에게 필요한 권한은 CONNECT, ALTER SYSTEM, SELECT_CATALOG_ROLE이다. 유저 생성 및 권한 부여는 SYS 계정에서 아래 DDL 및 DCL 문을 사용한다.
추가로 TPR Report, ASH Report 기능을 사용하려면 아래 DCL 문을 사용하여 관련 권한을 부여해야 한다.
TPM Agent에서 Tibero로부터 정보를 수집하기 위해서는 libtpmstat 라이브러리가 필요하다. 관제 데이터베이스에 279651 패치가 적용되어 libtpmstat 라이브러리가 있는 경우에는 Tibero 환경 변수 설정 과정을 통해 해당 라이브러리를 사용할 수 있다.
만약 관제 데이터베이스에 libtpmstat 라이브러리가 없는 경우에는 해당 데이터베이스에 맞는 라이브러리를 추가로 배포해야 한다. 이때 배포된 libtpmstat.so 파일을 TPM Agent 디렉터리로 이동시킨 후 TPM Agent 라이브러리 경로 설정을 통해 해당 라이브러리를 사용할 수 있다.
설치 환경에 따른 SysMaster DB 8.3의 배포 파일은 다음과 같이 구성된다.
Java TPM Agent의 배포 파일은 다음과 같이 구성된다.
Instance Monitoring 페이지의 Instance Overview 영역에서는 현재 선택된 그룹의 인스턴스 목록과 상태에 대한 요약 정보를 확인할 수 있다.
Instance Overview 영역은 Instance Monitoring 페이지의 좌측에 사이드 패널 형태로 제공된다.
해당 영역에는 현재 선택된 그룹에 등록된 인스턴스 목록이 표출되며, 각 인스턴스별 상태에 대한 요약 정보가 제공된다.
사용자는 하나의 Layout에서 최대 5개까지 인스턴스를 동시에 선택하여 모니터링 할 수 있다.
Instance Overview 영역을 통해 확인할 수 있는 인스턴스 상태 정보는 다음과 같다.
CPU
현재 모니터링 중인 인스턴스의 상태와 주요 모니터링 데이터들을 카드 뷰 형태로 확인할 수 있다.
카드 뷰는 기본적으로 3초 주기로 Refresh되며, Card Order By 에 설정된 대로 정렬되어 표시된다. (카드 정렬 기준 참조)
좌상단의 카드 레이아웃 버튼을 통해 / / 레이아웃으로 전환하여 확인 할 수 있다.
Cpu Usage / Memory Usage / Lock Session Waiter Count / Running Session Count로 Card View를 정렬한다.
안내서 정보
안내서 제목 : SysMasterDB 매뉴얼 발행일 : 2026-04-15 소프트웨어 버전 : SysMasterDB 8.3.5 안내서 버전 : v1.5.0
본 안내서는 SysMasterDB 8.3를 시스템에 설치하는 과정을 설명한다.
SysMasterDB 8.3를 설치하고자 하는 시스템 관리자 그리고 DBA를 대상으로 기술한다.
데이터베이스의 이해
RDBMS의 이해
글로벌 내비게이션 바에서 [Realtime] > [Usage Monitoring] > [Undo Usage] 를 클릭하면 Undo Usage 화면이 열린다.
Undo Usage 페이지에서는 Undo 사용량 정보를 보여준다. 현재 트랜잭션을 발생시킨 후 Commit 이나 Rollback을 통하여 트랜잭션을 종료시키지 않고 있는 세션들의 정보를 확인할 수 있다.
다음은 Session Undo Usage 페이지에서 제공하는 항목에 대한 설명이다.
관제 데이터베이스의 설정 방법 및 TPM Agent의 설치 방법을 다음과 같은 단계로 설명한다.
- 관제 데이터베이스의 유저와 TIP 설정하는 방법을 설명한다.
- TPM Agent의 설치 방법을 설명한다.
현재 모니터링 중인 인스턴스들의 Aert 발생 현황을 나타내는 영역이다. 각 Alert Level (Error, Warning, Info) 별로 몇개의 Alert가 발생하고 있는지 표시한다. 버튼을 클릭하여 해당 인스턴스의 Alert Event History로 이동한다.
User Created Alert 및 System Alert 모두 확인 할 수 있으며, Alert가 발생한 시각, Alert 이름, Alert 레벨, Alert가 발생한 인스턴스, Confirm 여부 및 Alert 확인시 작성한 유저 Comment 이력을 확인 할 수 있다.
인스턴스 및 필터 조건을 변경하여 다른 인스턴스 및 특정 시간대에서 발생한 Alert들을 조회 할 수 있다.
SQL Text 화면에서는 New Plan List에서 선택한 SQL문에 대한 전체 구문을 확인할 수 있다.
SysMaster DB 8.3 설치 방법을 과 으로 나누어 설명한다. 이때 각 환경에서 다음과 같은 단계로 설명한다.
설치 및 파라미터 설정 - SysMaster DB 8.3 의 설치 및 파라미터 설정방법에 대해서 설명한다.
기동 / 로그 확인 / 종료 / 초기화- 기동, 로그 확인, 종료, 초기화 방법에 대해서 설명한다.
마지막으로 에서는 SysMaster DB 8.3에서 사용하는 포트들에 대해서 설명한다.
글로벌 내비게이션 바에서 [Analysis] > [History Analysis] > [All Session Flow] 메뉴를 클릭하면 All Session Flow 화면이 열린다.
All Session Flow 화면에서는 지정한 기간 동안 접속한 DB 사용자별로 구분하여 세션 개수를 그래프로 제공한다. 이때 특정 시점의 사용자가 몇개의 세션을 맺었는지 확인이 가능하며, 선택한 시점에 어떤 세션들이 활동을 하였는지 확인할 수 있다.
그룹 선택 화면에서는 사용자가 들어갈 그룹을 선택한다. 만약 사용자가 아무런 그룹에 소속되어 있지 않다면, Undefined(그룹 없음)으로 로그인이 가능하다.
원하는 그룹을 선택한 후 Sign In to group 버튼을 누르면 대시보드 화면으로 이동한다.
All Session Flow 페이지에서 Period Selector는 Chart Interval 기능이 추가되어있다. 공통 기능의 Period Selector는 조회 기간에 따라 Chart Interval이 동적으로 결정되지만 All Session Flow 페이지에서는 사용자가 Chart Interval을 지정할 수 있다.
Chart Interval은 각각 sec, min, hour, day가 존재하고 선택한 Period가 Chart Interval로 표현할 수 있는 시간을 포함하는 경우 선택할 수 있다.
프로파일 기능을 통해 아래의 동작을 수행할 수 있다.
내 계정 설정
테마 변경 (Light / Dark)
About















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 Alias


라이선스 파일명
sysmaster-db-license.xml
라이선스 경로
$SYSMASTERDB_HOME/license
$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를 다시 기동하면 최초 설치 상태와 동일하게 동작한다. 단, 이전에 저장한 데이터는 사용할 수 없다.
{SysMasterDB_Home_Path}
docker-compose.yml 파일이 위치한 디렉터리 경로
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];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.shexport SYSMASTERDB_HOME={SysMasterDB_Home_Path}export PATH=$PATH:$SYSMASTERDB_HOMEsysmaster-db uppodman compose -f podman-compose.yml up -dStarted SdmApplication in ... seconds (JVM running for ...)sysmaster-db downTablespace Name
테이블스페이스 이름
Contents
테이블스페이스에 저장하는 데이터 종류
TEMPORARY
PERMANENT
UNDO
Earlier Time
이전 시점
Later Time
이후 시점
Earlier Free/Total Size
이전 시점의 여유 공간 현황
Later Free/Total Size
이후 시점의 여유 공간 현황
Earlier Used/Total Size
이전 시점의 사용량 현황
Later Total/Total Size
이후 시점의 사용량 현황
Tablespace Usage 에서 특정 데이터 클릭 시 해당 테이블스페이스의 시간별 크기 변화를 상세하게 확인할 수 있다. 이때 오른쪽의 그래프를 통해 크기 변화량을 한눈에 파악할 수 있다.
다음은 Tablespace Info 화면에서 제공하는 항목에 대한 설명이다.
Log Time
수집 시간
Tablespace Name
테이블스페이스 이름
Used


Alert Item: Alert 대상 지표
Threshold: 설정한 Alert 발생 기준
Instance: Alert가 발생한 인스턴스 명
Alert Trigger: System Alert가 발생한 원인을 나타낸다.
하단에 Go to Alert Events History 버튼을 클릭하여 Alert 이력을 확인 할 수 있다.
해당 인스턴스의 실시간 CPU 사용률
Lock
해당 인스턴스의 실시간 Lock Waiter Session Count
Alert
해당 인스턴스의 실시간 미확인 알림 상태 및 개수
인스턴스 구동 상태가 DB Down 또는 Agent Disconnected인 경우에는 아래와 같이 별도의 서식으로 표기된다.
추가로, 사용자는 필요에 따라 접기 버튼을 클릭하여 Instance Overview 영역 사이드 패널을 접거나 펼칠 수 있다.

좌상단의 핀 버튼을 클릭하여 핀 한 카드를 좌상단에 고정시킬 수 있다.
여러 카드 뷰가 핀 되었을 경우 핀 된 순서대로 고정된다.
Card View의 Updated Time을 표시한다.
Card Layout 오른쪽에 Compact / Detailed / Expanded를 클릭하여 Card View Layout을 변경할 수 있다.
Card View 선택 기능
Card View 를 클릭하여 Instance Overview에서 인스턴스를 클릭한 것과 마찬가지로 특정 인스턴스만 강조할 수 있다.
인스턴스를 강조하면 하단 Custom Area에 모든 인스턴스의 지표가 표시되는 대신 강조된 인스턴스의 데이터만 표시된다.


운영체제 및 시스템 환경의 이해
UNIX 계열(LINUX 포함)의 기본 지식
티맥스티베로 SysMasterDB 매뉴얼에 적용되는 저작권 안내사항 이다.
경기도 성남시 분당구 정자일로 45 티맥스타워
Tel : +82-1544-8629
E-Mail : docs@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 설치 과정을 설명한다.
SysMasterDB 접속부터 권한 설정 등 사용자 설정 과정을 안내한다.
SysmasterDB의 Dashboard에 대해 안내한다.
SysmasterDB에서 제공하는 분석 기능에 대해 안내한다.
🔎
Group, 사용자 등 각종 설정 메뉴에 대해 안내한다.
🔎
서비스에서 제공하는 모니터링 대상 Component에 대한 간략한 설명이다.
🔎
본 안내서는 SysMasterDB 8.3를 실무에 적용하거나 운용하는 데 필요한 모든 사항을 포함하지 않는다.
세션의 SID
Serial#
세션의 시리얼 번호
User
세션 사용자 이름
Program
세션의 프로그램 이름
Module
세션의 모듈 이름
Segment ID
사용 중인 세그먼트 ID
Used/Total Size
사용 중인 Undo 크기 현황
Used Block
사용 중인 Undo Blocks
Used Rec
사용 중인 Undo Records
Recovery
Recovery 중인 크기
SID
현재 서비스에 대한 정보를 확인할 수 있다.
모니터링 그룹 변경
시스마스터 각 메뉴에서 모니터링 할 그룹을 설정 할 수 있다.
로그아웃
생성할 유저가 속할 그룹과 해당 그룹에서의 역할(Role)
Password
유저의 암호
Mail Address
유저의 이메일 주소
Phone Number
유저의 핸드폰 번호
Date Format
서비스 화면에 표시될 날짜 형식
Description
유저에 대한 설명
사용자 이름
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
세션의 로그온 시간

로그인 후 첫 화면인 Dashboard에서 import 버튼을 클릭하면 instance를 등록할 수 있다.
아래 예시 화면은 인스턴스 등록 페이지이다.
해당 페이지에서는 모니터링을 위한 인스턴스 연결 테스트 및 등록을 수행할 수 있으며, 현재 서비스에 적용된 라이선스 정보를 상단 License Info 영역을 통해 참고할 수 있다.
새로 등록한 instance는 바로 화면에 반영되지 않고, 그룹에 instance를 할당한 후에 Dashboard에서 관제가 가능하다.
SysMaster DB 8에서 사용하는 포트 중 외부 접속을 허용해야 하는 포트들은 다음과 같다.
SysMaster DB 서버에서 허용해야 하는 포트 목록
CLIENT_PORT
관제 데이터베이스 서버에서 허용해야 하는 포트 목록
모든 사용자는 하나 이상의 그룹에 소속될 수 있다. 그룹에 소속되면 해당 그룹의 역할(Role)을 부여 받게 된다.
ex) admin, user사용자는 한 그룹 당 한 개의 역할을 가질 수 있으며, 여러 개의 그룹에 속한 경우 그룹마다 각각 다른 역할을 가질 수 있다.
그룹에는 인스턴스가 할당된다. 그룹원들은 그룹에 할당된 인스턴스에 대한 권한(Configurable Privileges)을 할당받을 수 있다.
Configurable privileges는 각 유저별 권한을 의미한다.
기능별, 인스턴스별로 존재하며, 어드민이나 슈퍼 어드민이 직접 수정이 가능하다.
기본값은 전부 권한 없음이다.
인스턴스가 명시된 privilege는 해당 인스턴스에서만 기능을 사용할 수 있고, 인스턴스가 명시되지 않은 privilege는 인스턴스와 무관하게 모든 페이지에서 기능을 사용할 수 있다.
변경사항이 생기면 save 버튼이 활성화 되며 save을 눌러 저장을 해야 변경사항이 저장된다. cancel을 누르게 되면 기존 설정값으로 돌아간다.
다음은 privilege별 설명이다.
Performance Analysis에서는 성능과 관련된 각종 지표들을 확인할 수 있다.
Overall 메뉴에서 장기간 그래프를 통해 추이를 확인 한 후, Time Slice 기능을 통해 특정 시점에서 발생한 모든 지표 정보를 복합적으로 확인 할 수 있다.
Analysis의 하위 메뉴별로 조회 기간을 설정할 수 있다. 화면 상단의 Time Slice 버튼을 누르면 Time Slice 생성창으로 이동한다.
Time Slice를 할 구간을 선택한다.
Time Slice로 구분할 Time Unit을 선택하고 View를 누른다.
구간 안에서 Time Unit으로 나누어진 Time Slice를 선택하면 해당 Time Slice에 대한 화면이 열린다.
Physical Reads, Hard Parse Count 등 내가 관심 있는 지표를 어떤 SQL이 가장 많이 발생시켰는지 확인 할 수 있다.
설정한 지표의 변화 추이를 Heatmap을 통해 확인하고, 더 상세히 분석하고자 하는 기간의 Performance Trend나 Top N Performance 페이지로 연계할 수 있다.
글로벌 내비게이션 바에서 [Analysis] > [History Analysis] > [Invalid Object] 페이지를 클릭하면 Invalid Object 페이지가 열린다.
Invalid Object 페이지에서는 Invalid Objects Count 데이터와 Invalid Objects 상세 정보를 확인할 수 있다.
지정한 기간 동안의 Invalid Objects Count 정보를 확인할 수 있다.
Invalid Objects Count 차트에서 특정 데이터 클릭 시 해당 데이터 카운트에 포함된 전체 Invalid Object 정보를 제공한다. 이를 통해 사용자는 각 시간대별 Invalid Object 데이터의 상세 정보를 확인할 수 있다.
다음은 Invalid Objects 화면에서 제공하는 항목에 대한 설명이다.
Instance Monitoring 페이지의 Layout Tab 영역에서 제공되는 모니터링 지표 차트의 공통 기능에 대해 설명한다.
차트 좌상단의 지표명 우측에 표출되는 info 아이콘 위에 마우스 포인터를 올려두면, 해당 지표에 대한 Description을 확인할 수 있다.
차트 우상단의 더보기 아이콘을 클릭하면, 각 차트별로 지원되는 부가 기능 목록을 확인할 수 있다.
차트 종류에 따라 지원되는 부가 기능이 다르며, 차트별 부가 기능에 대한 설명은 Chart Type을 참고한다.
차트 우상단의 확대 아이콘을 클릭하면, 별도의 모달을 통해 해당 차트를 확대하여 확인할 수 있다.
차트 우하단 모서리를 클릭한 상태로 드래그하여 해당 차트의 크기를 조절할 수 있다.
차트 우상단의 닫기 아이콘을 클릭하면, 현재 레이아웃에서 해당 차트를 제거할 수 있다.
일부 차트 종류에서는 실시간 모니터링 중 사용자의 편의를 위해 다른 페이지로 연계해주는 기능을 제공한다.
해당 기능은 Bar, Line, Area, Stack Bar 차트에서 특정 인스턴스 그래프 클릭 시 사용할 수 있으며, 이동 가능한 페이지는 아래와 같다.
Realtime > Session Monitoring
Analysis > Performance Trend
Analysis > Top N Performance
Analysis > Changed Plan Analysis
본 장에서는 선택된 그룹 내의 모든 관제 데이터베이스 인스턴스를 통합 모니터링 할 수 있는 Dashboard에 대해 설명한다.
각 모니터링 중 인스턴스에 대한 실시간 상태 정보 및 지표를 제공한다.
우상단의 톱니바퀴 버튼을 눌러 Auto Refresh 주기 및 중단을 설정할 수 있다.
대시보드는 다음과 같은 주요 섹션으로 구성된다.
주요 메뉴 및 전역 내비게이션 기능 제공
DB 인스턴스들의 상태 및 인스턴스의 Alert 발생 현황을 확인하는 영역
Card View 형태로 각 인스턴스별 상태 및 CPU / Running Session등 주요 지표 제공
그룹 내 인스턴스들의 더 자세한 실시간 성능 지표를 제공하는 차트와 테이블 제공
Layout Split
Custom 영역과 Card View 영역의 크기 비율을 조정하는 버튼
드래그 혹은 클릭을 통해 Card View : Custom Area 영역을 1:2 / 2:1 / 3:0 으로 설정 가능
글로벌 내비게이션 바에서 [Realtime] > [Usage Monitoring] > [File Usage] 를 클릭하면 File Usage 페이지가 열린다.
File Usage 페이지에서는 데이터 파일 사용량 정보를 보여준다. File Usage 는 관제 DB 에 대한 부하를 최소화하기 위해 한시간마다 수집되는데, 우 상단 [Collect] 버튼 클릭시 최신 File Usage 정보를 수집하여 보여준다.
모니터링 대상 DB의 테이블스페이스의 데이터 파일 I/O 사용량 정보를 확인할 수 있다.
Daily Hourly Chart에서 선택한 한 시간 동안의 분 단위 차트를 확인할 수 있다. 이때 해당 차트는 Daily Hourly Chart의 아래에 위치한다.
Minute Chart bar를 클릭하면 원하는 메뉴로 이동이 가능하다.
각 버튼에 대한 설명은 다음과 같다.
[New Tab]에서 [Add Layout] 버튼을 클릭하여 Layout을 신규 생성할 수 있다.
레이아웃 생성은 다음과 같은 프로세스로 진행된다.
Layout Name
레이아웃 이름을 입력한다. 해당 이름이 Instance Monitoring 페이지에 노출된다.
Chart Index
사용자가 실시간으로 모니터링할 지표를 선택한다.
Instance Monitoring에서 제공되는 모니터링 지표 목록은 를 참고한다.
Selected Item
사용자가 선택한 지표 목록을 확인하고, 각 지표 차트 옵션을 설정한다.
Summary
사용자가 선택한 지표 목록이 반영된 레이아웃 예시를 확인할 수 있다.
Add
Add 버튼을 클릭하여 사용자가 직접 정의한 Layout을 생성, 해당 Layout Tab에 적용한다.
글로벌 내비게이션 바에서 [Realtime] > [High Availability Monitoring] > [TSC Monitoring] 메뉴를 클릭하면 TSC Monitoring 화면이 열린다.
TSC Monitoring 화면에서는 TSC 목록, 각 TSC 네트워크 구성, TSN을 통한 복구 현황 차트, Primary DB와 Standby DB 실시간 현황을 모니터링할 수 있다.
자동 갱신 주기를 설정할 수 있다. [Refresh] 버튼을 통하여 즉시 갱신할 수 있다.
TSC 목록을 확인할 수 있다.
TSC 네트워크 구성을 확인할 수 있다.
Kubernetes 환경에서 SysMaster DB 를 기동 / 로그 확인/ 종료 / 초기화하는 방법이다.
설치 파일이 위치한 디렉터리에서 아래와 같은 순서로 명령을 수행하여 쿠버네티스 오브젝트를 생성한다.
다음 단계로 진행하기 전 RepoDB, MetaDB가 정상적으로 부팅 완료되어야 한다. 이는 다음과 같은 로그를 통해 확인 가능하다.
먼저 각각 해당 pod의 터미널 출력 로그에서 아래와 같은 메세지가 출력되는 것을 확인한다.
다음으로 각 데이터베이스의 로그파일에 아래와 같은 메세지가 출력되는 것을 확인한다.
이때 각 데이터베이스의 로그 파일 확인 방법은 을 참고한다.
sysmasterdb8-sdm-container가 생성되면, 해당 컨테이너 내 sysmaster/license
브라우저에서 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 Alias
인스턴스 이름 (카드에 표시되는 정보)
IP Address
관제 대상 DB의 접속 IP
Port
관제 대상 DB의 접속 포트 번호
DB Name
관제 대상 DB의 SID
User ID
관제 대상 DB의 사용자 이름
Password
관제 대상 DB의 사용자 패스워드
TPM Agent ID
인스턴스 ID
Instance Color
인스턴스 고유 색상 (차트에 그려지는 색상)
주의
LOG_REPLICATION_DEST_N = "hostname_N:port_N {LGWR SYNC|LGWR ASYNC|ARCH ASYNC}" 의 IP:PORT와 SysMaster DB 에 Standby 인스턴스 등록할 때 사용한 IP:PORT 가 다르다면 TSC 모니터링 화면의 topology 네트워크 구성이 올바르게 보이지 않는다.













Data Collection
Table Space Usage와 File Usage에서 선택된 인스턴스의 정보를 collect 할 수 있는 권한을 가지게 된다.
Kill Session
선택된 인스턴스의 세션을 강제로 종료시킬 수 있는 권한을 가지게 된다.
Data Export
CSV 파일을 다운로드 할 수 있는 권한을 가지게 된다.
Custom


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

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 를 다시 기동하면 이전에 저장한 데이터를 사용할 수 있다.
아래의 명령을 수행하면 모든 데이터가 삭제되고, 최초 설치 상태와 동일하게 동작한다. 단, 이전에 저장한 데이터는 사용할 수 없다.
kubectl apply -f kubernetes/initkubectl apply -f kubernetes/db[ENTRYPOINT LOG]: INFO: Attempting to start PostgreSQL server...LOG: database system is ready to accept connectionskubectl apply -f kubernetes/kafkakubectl apply -f kubernetes/sysmasterStarted SdmApplication in ... seconds (JVM running for ...)/sysmaster/logskubectl delete -f kubernetes/sysmasterkubectl delete -f kubernetes/kafkakubectl delete -f kubernetes/dbkubectl delete -f kubernetes/initInvalid Object의 Sub Object 이름
Object Type
Invalid Object의 타입
Status
Invalid Object의 상태 (INVALID)
Last DDL Time
Invalid Object의 최근 DDL이 실행된 시간
Log Time
Invalid Object 데이터의 수집 시각
Owner
Invalid Object의 소유자
Object Name
Invalid Object의 Object 이름
Sub Object Name
[Overview] 버튼을 누르면 TSN 차트를 확인하여 복구 현황을 모니터링할 수 있다.
Primary DB와 Standby DB의 현황을 테이블 형식으로 모니터링 할 수 있다.
Primary Database, Standby Database에서 각 인스턴스 명을 클릭하면 우측 사이드 패널에서 Instance info를 확인 할 수 있다.
다음은 Primary Database 화면에서 제공하는 항목에 대한 설명이다.
Instance
인스턴스 이름
Current Log
가장 최근의 Redo Log
CPU
다음은 Standby Database 화면에서 제공하는 항목에 대한 설명이다.
Instance
인스턴스 이름
Status
Standby 의 상태. Status가 여러개 일 경우 1개만 표기하고 +n 으로 표기,
프라이머리 노드가 여러개일 경우 첫번째 노드와의 네트워크 상태가 표시된다.
값 종류
PRIMARY NOT CONNECTED
Open Mode


사용량
Free
사용 가능한 양
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 자동 확장 여부
Performance Trend
Analysis Performance Trend 메뉴의 메인 화면으로 이동한다. 해당 메뉴에 대한 자세한 내용은 “4.2. Performance Trend”를 참고한다.
Top N
Top N Performance 메뉴의 메인 화면으로 이동한다. 해당 메뉴에 대한 자 세한 내용은 “4.3. Top N Performance”를 참고한다.
글로벌 내비게이션 바에서 [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 사용량을 모니터링 할 수 있다.
Server Monitoring 페이지 왼쪽 상단의 CPU 화면은 User, System 영역별 CPU 사용량과 현재 총 CPU 사용량을 차트로 보여준다.
Server Monitoring 페이지 왼쪽 하단의 Memory 화면은 전체 Memory 크기와 현재 Memory 사용량을 차트로 보여준다.
Current Process Usage 페이지은 각 프로세스의 CPU 및 Memory 리소스 사용량을 보여준다.
application.yml 파일 설정 완료 후 아래와 같은 순서로 TPM Agent를 환경을 설정한다.
set.sh 스크립트 내용
Global Navigation Bar를 통해 시스마스터 각 메뉴로 이동해 기능을 사용할 수 있다.
GNB로 이동할 수 있는 메뉴는 Realtime, Analysis, , ,, 이다.
- 논리적 읽기, 물리적 읽기, 실행 횟수 등 세션 실시간 지표를 모니터링한다.
- CPU·메모리 사용량 등 OS 수준의 자원 사용 현황과 프로세스별 자원 소비를 필터 옵션과 함께 모니터링한다.
- 사용자 지정 차트 레이아웃으로 선택한 인스턴스를 실시간 모니터링한다.
- 테이블스페이스 사용량과 상태를 시간별 업데이트 및 실시간 데이터 수집으로 모니터링한다.
- 데이터베이스 파일 사용량을 자동으로 매시간 수집하며, 필요 시 실시간 업데이트도 가능하다.
- 비효율적인 쿼리나 과도한 자원 사용을 감지하기 위해 임시 테이블스페이스 사용량을 모니터링한다.
글로벌 내비게이션 바에서 [Realtime] > [Usage Monitoring] > [Tablespace Usage] 를 클릭하면 Tablespace Usage 페이지가 열린다.
Tablespace Usage 페이지에서는 테이블스페이스 사용량 정보를 보여준다.
모니터링 대상 DB의 테이블스페이스 사용량과 상태 정보를 확인할 수 있다. 이때 기본 수집 단위는 1시간이지만, 우 상단의 [Collect] 버튼을 이용하면 해당 시간에 실시간 정보를 수집해서 보여준다.
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
인스턴스의 현재 총 CPU 사용량(%)
Memory
인스턴스의 현재 총 Memory 사용량(%)
Failover
Failover 된 Primary Instance일 경우, Failover 된 시점 표시
Replication Mode
Primary DB와 Standby DB 간 데이터 복제 동작 방식 표기
(표기 가능한 값: PROTECTION, AVAILABILITY, PERFORMANCE)
MOUNT
RECOVERY
READ WRITE
READ ONLY
READ ONLY WITH APPLY
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 차이





















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
PID
프로세스의 OS PID 값
User
OS 사용자 이름
CPU(%)


Page In 발생한 횟수
프로세스 레벨의 CPU 사용률
{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
Java TPM Agent에서 libtpmstat.so를 사용하기 위하여 필요한 라이브러리이다.
Tibero Down 이후 바로 Tibero Boot를 위해서 TPM Agent Down이 필요하다. TPM Agent가 참조하고 있는 Tibero Shared Memory를 해제해야 하기 때문이다.
ulimit -c unlimited. set.shif [ -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" 압축 파일 해제 디렉터리 경로
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주의
Tibero 버전명 또는 코어셋명만으로 연동 라이브러리의 호환 여부를 판단할 수 없다. 연동 라이브러리(libtpmstat.so)는 Tibero 서버와 공유 메모리 구조체가 일치해야 정상 동작하므로, 동일한 Tibero 버전이라도 빌드 시점, 직반 패치 내역, 컴파일 옵션 등에 따라 호환되지 않을 수 있다. 따라서 과거 빌드 바이너리 또는 별도 패치가 적용된 바이너리를 사용하는 경우, 관제 연동 전 동일한 Tibero 형상 기준으로 라이브러리를 빌드하고 호환 여부를 확인해야 한다.
libJNITpmStat.so 파일이 사용하는 libtpmstat.so 라이브러리 버전이 현재 Tibero 바이너리 버전과 맞지 않다면, 기존 TPM Agent 와 동일하게 SIGSEGV 문제 등 오류가 발생하여 프로세스가 실행되지 않는다. 각 JVM 벤더별로 생성되는 오류 관련 파일 종류는 다르나 core, jitdump, javacore 등의 파일 들이 생성될 수 있으므로 해당 파일 생성시 libtpmstat.so 라이브러리 버전을 확인해야한다.
주의
TPM Agent가 참조하고 있는 Tibero Shared Memory를 해제하기 위해서는 Tibero Down을 감지해야 하는데 감지 주기는 매 수집 주기와 동일하다. 따라서 사용자의 수집 주기 설정이 길게 되어있거나 TPM Agent 자체가 느려지는 경우 등 Tibero Down 감지 자체가 늦어질 경우 Tibero Down을 하고 다시 Tibero Boot가 가능한 시점이 지연되게 된다. 이와 같이 Tibero Down 감지가 늦어져 Tibero Boot 가능 시점이 지연되는 것을 방지하기 위해서는 TPM Agent Down을 진행하고 Tibero Boot를 하면 된다.
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 보고서를 생성·조회한다.
테이블스페이스 이름
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
Tablespace Name


TPM Agent 도움말 출력
./tpmctl.sh version
TPM Agent 버전 출력
./tpmctl.sh libversion
TPM Agent 이 사용하는 TPM Stat 라이브러리 빌드 패치 목록과 Tibero의 패치 목록 출력



테이블스페이스 사용공간 현황
세그먼트 이름
Partition Name
파티션 이름
Used/Total Size
해당 세그먼트가 차지하는 공간의 비율
SysMaster DB 8.3의 공식지원 플랫폼 및 운영체제는 다음과 같다.
Instance Monitoring 페이지의 Layout Tab 영역에서 제공되는 모니터링 지표 차트의 종류에 대해 설명한다.
인스턴스별 해당 지표의 실시간 값을 막대 그래프로 나타내는 차트이다.
Line 또는 Area 차트로 전환이 가능하다.
인스턴스별 해당 지표의 실시간 값을 꺾은선 그래프로 나타내는 차트이다.
Bar 또는 Area 차트로 전환이 가능하며, 부가 기능을 통해 선 굵기를 사용자가 직접 설정할 수 있다.
인스턴스별 해당 지표의 실시간 값을 영역 그래프로 나타내는 차트이다.
Bar 또는 Line 차트로 전환이 가능하다.


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












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)
Oracle Linux 8 ~ 10 (64-bit)
SysMaster DB 8.3를 설치하기 위해 필요한 하드웨어 및 소프트웨어의 요구 사항은 다음과 같다.
CPU
8 Core
RAM
32 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
운영체제
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 이상
주의
Docker Compose 2.40.2 버전 미만인 경우 Docker Compose에서 원격 OCI Compose 아티팩트 설정 값 검증 미흡으로 발생하는 경로 탐색 취약점이 있다. 따라서 2.40.2 버전 이상으로 업데이트를 권고한다.
인스턴스별 해당 지표의 실시간 값을 누적 막대 그래프로 나타내는 차트이다.
Grid 차트로 전환이 가능하며, 부가 기능을 통해 해당 지표의 범위값을 사용자가 직접 설정할 수 있다.
인스턴스별 해당 지표의 실시간 값을 테이블 형태로 나타내는 차트이다.
각 인스턴스별로 탭을 구분하여 해당 지표의 실시간 값을 제공하며, Stack Bar 차트로 전환이 가능하다.
인스턴스별 해당 지표의 실시간 값을 원형 그래프로 나타내는 차트이다.
각 인스턴스별로 탭을 구분하여 해당 지표의 실시간 값을 제공한다.
인스턴스별 해당 지표의 실시간 값을 분산형 그래프로 나타내는 차트이다.
부가 기능을 통해 해당 지표값의 조회 범위를 사용자가 직접 설정할 수 있다.
Scatter 차트로 제공되는 Response Time 지표의 경우, 차트 내 드래그를 통해 원하는 영역을 선택할 수 있다.
이 때, 드래그로 선택한 영역 내의 각 포인트에 해당하는 SQL Trace 정보가 Long SQL List 모달을 통해 제공된다.
Long SQL List 모달의 각 칼럼은 다음과 같다.
Instance
인스턴스 명
SID
세션의 ID
Long SQL List 모달의 테이블 내 각 항목 클릭 시, 해당 SQL Trace가 수행된 Session Detail 페이지로 이동한다.
추가로, Super Admin 또는 Admin 권한을 가진 사용자에게는 Long SQL List 모달에 Download 버튼이 제공된다.
해당 클릭하면, 테이블 데이터를 csv 형식의 파일로 내려받을 수 있다.
일반 사용자에게는 기본적으로 Download 버튼이 표출되지 않으나, Admin 사용자에 의해 Data Export 권한을 부여받은 경우에는 해당 기능을 사용할 수 있다.


Docker-compose 및 Podman-compose 환경에서 SysMaster DB 8.3를 설치하는 과정이다.
설치 파일이 준비된 디렉터리에서 아래의 명령을 수행하여 Docker / Podman 이미지를 로드한다.
Docker:
docker load -i sysmaster-db-{version}.tarPodman:
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 파일은 기본적으로 제공되는 설정값을 사용하되, 다음에서 설명하는 파라미터는 필요 시 구동 환경에 맞게 사용자가 직접 설정해준다.

Serial#
세션의 시리얼 번호
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로 대기한 시간











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 이상
30 GB 이상 (수집 정보의 보관 주기(RETENTION_DAY)에 따라 일 당 50 GB 추가 필요)
웹 브라우저
Chrome (최신 버전 사용 권장)
libtpmstat 라이브러리 생성
[참고] 해당 패치가 없는 경우 libtpmstat 라이브러리를 TPM Agent 설치 시 함께 배포해야 한다. TPM Agent 8.1.3 이상은 하위 버전 패치인 279651e 이하 패치와 호환이 되지 않기에, 279651f 이상 패치가 필요하다. Tibero에 적용된 279651 패치 버전과 상관 없이, TPM Agent 빌드 시 사용한 279651 패치 버전과 라이브러리의 279651 패치 버전이 맞아야 한다.
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 primarycollector
관제 데이터베이스로부터 데이터를 수집하는 서버
analyzer
수집한 정보를 가공해 분석 및 저장하는 서버
metadb
UI 관련 설정 정보를 저장하는 DB 서버
repodb
관제 데이터베이스 수집 데이터를 저장하는 DB 서버
zookeeper
Kafka Broker 서버의 상태 관리
broker
Kafka Broker 서버
schema-registry
Kafka 메시지 프로토콜 관리
Admin 계정의 사용자 이름
admin
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
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
[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 -dtibero-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

관제 데이터베이스에 대한 상태 확인과 Admin 기능을 수행하는 서버
ADMIN_USERNAME
해당 DB 데이터 디렉토리 접근 권한 설정을 위한 Host OS의 사용자 그룹 ID(gid). 호스트 머신의 특정 유저에서 컨테이너 DB 디렉토리로 직접 접근하고 싶을 경우 해당 유저의 그룹 ID로 설정한다.
글로벌 내비게이션 바에서 [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를 명시하여 현재 어떤 시간의 정보인지 확인할 수 있다.
사용자는 Elapsed Time의 기준을 설정할 수 있으며, 설정된 범위로 어떤 세션이 오래 수행되었는지를 색상을 통해 직관적으로 파악할 수 있다.
세션을 Kill 시킬 수 있다. Session Monitoring 기능에 대한 권한(Privileges)이 Full로 설정된 유저만 수행할 수 있으며, Session 목록에서 특정 세션을 클릭해야만 해당 버튼이 표시된다.
[Kill Session] 버튼을 클릭하면 Kill Session 팝업창이 열린다. 이때 해당 세션을 Kill 하거나 동작을 취소할 수 있다.
다음은 Kill Session 팝업창에서 제공하는 정보에 대한 설명이다.
SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터를 true로 설정(주석 제거)한 경우, 본 파라미터 설정은 무시됨.
SID
세션의 ID
Serial#
세션의 시리얼 번호
Elapsed Time
세션의 현재 수행 중인 SQL의 Elapsed Time
Username
SID / Serial#
세션의 ID / 세션의 시리얼 번호
Status
세션의 상태
User Name
현재 사용자 이름
Program
세션의 프로그램 이름
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
연결된 세션의 호스트 이름
TPM Agent를 설치하는 과정은 다음과 같다. 단, 반드시 관제 데이터베이스를 설치한 계정과 동일한 OS 계정으로 진행해야 한다.
관제 데이터베이스가 위치한 서버에 "tpmagent_dist_{version}.tar.gz" 압축 파일을 배포한 후 압축을 해제한다.
"java_tpmagent_dist_{version}.tar.gz" 압축 파일을 해제한 디렉터리에 application.yml 파일을 아래와 같이 작성하여 설정을 적용한다. yml 문법에 맞게 각 파라미터들의 값을 조정하여 설정한다.
해당 과정에서 설정하는 파라미터에 대한 설명은 다음과 같다.
agent-config
id
인스턴스 ID
[참고] 웹 UI에서 관제 데이터베이스 인스턴스 등록 시 입력한 INSTANCE ID 값과 동일해야 함. 잘못 입력시 잘못된 Tibero 설치 머신 현황과 세션 목록, 그리고 TSC 네트워크 구성을 모니터링하게 되므로 주의 요망.
O
agent-config
ip
SysMaster DB 서버에 접속할 수 있는 IP 주소
O
agent-config
port
Tibero에서 지원하는 문자 집합은 다음과 같다.
ASCII
EUC-KR
MSWIN949
UTF-8
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
"java_tpmagent_dist_{version}.tar.gz" 압축 파일을 해제한 디렉터리에 set.sh 파일에 적용시킬 환경 변수들이 있으며, 아래와 같이 작성하여 설정을 적용한다.
해당 과정에서 설정하는 환경변수에 대한 설명은 다음과 같다.
BOOT_WITH_AUTO_DOWN_CLEAN
TPM Agent 실행시 기존에 실행중인 process가 있으면 해당 프로세스 종료 후 실행할 것인가에 대한 환경 변수, default는 true
X
ENABLE_DEBUG
TPM Agent 실행시 debug port를 열 것인 지에 대한 환경 변수, default는 false
tar -zxvf java_tpmagent_dist_{version}.tar.gzagent-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/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=1000mTPM Agent가 SysMaster DB 서버의 COLLECTOR_PORT로 연결하기 위한 포트 번호
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
INFO
DEBUG
TRACE
[참고]설정하지 않으면 INFO 로 설정됨.
DEBUG 이상 설정을 할 경우 로그양이 많아져 TPM Agent 에 설정한 주기 안에 수집을 하지 못하여 데이터 누락이 발생할 수 있음. 그로 인하여 실시간 데이터 모니터링 중 데이터가 조회되지 않는 현상이 있을 수 있음. 따라서 운영 환경에서는 해당 설정을 하지 않는 것을 권고하며, 이슈 분석을 위해서만 해당 로그 레벨을 설정.
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
X
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




Kubernetes 환경에서 SysMaster DB를 설치하는 과정이다.
설치 파일이 준비된 디렉터리에서 아래의 명령을 수행하여 도커 이미지를 로드한다.
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 포함)
admin
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
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
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 서버에서 열려 있어야 함.
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
관제 데이터베이스에 대한 상태 확인과 Admin 기능을 수행하는 서버
Admin 계정의 암호
8292
SKIP_V8_2_1_TO_V8_3_0_MIGRATION_PATCH 파라미터를 true로 설정(주석 제거)한 경우, 본 파라미터 설정은 무시됨.
Performance Trend에서는 Overall 차트를 통해 각 지표의 변화 추이를 거시적 시점에서 확인하는 기능과 타임 슬라이스를 사용해 문제가 되는 시점의 초단위까지 세션 및 SQL 지표까지 확인할 수 있는 기능을 제공한다. 이를 통해 문제가 발생한 시점 및 문제 원인 파악까지 한번에 진행할 수 있다.
Performance Trend 메뉴에 처음 진입하면 Overall 차트를 확인할 수 있다. 각 인스턴스 별 시간 구간 에서 CPU / Memory / 세션 / Wait Class 별 추이를 확인 할 수 있다.
Performance Trend의 Overall 차트에서는 조회 기간 동안의 CPU, Memory, Running Session, Wait Class의 값 변화 추이 및 요약 정보를 보여준다. 이때 시간, 날짜 단위별로 상세 분석할 수 있는 기능을 제공하며, 그래프별로 차트 간격(Interval)과 집계 방식(Aggregation)을 드롭다운 메뉴로 선택하여 확인할 수 있다. 또한 마우스를 보고자 하는 지표에 올리면 해당 지표 값을 확인할 수 있다.
차트를 클릭시 해당 시점의 1시간 범위 Time Slice 페이지로 전환되어 더 자세한 분석을 진행할 수 있다.
설정한 시간 구간 동안 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가 발생했던 세션 목록을 오른쪽에 보여준다.
SID
세션의 ID
Serial #
PID
프로세스의 OS PID 값
Command
프로세스의 OS Command
User
SID
세션의 ID
Serial #
세션의 시리얼 번호
SQL ID
수행 중인 SQL의 SQL ID
Child Number
수행 중인 SQL의 Child Number 값
SQL Text
SQL ID | Child Number
세션이 수행 중인 SQL의 SQL ID 와 Child Number 값 쌍
SID
세션의 ID
Instance
데이터베이스 인스턴스 번호
SID
세션의 SID
Serial #
Name
Wait Event 이름
Desc
Wait Event 상세 설명
Wait Class
SID
세션의 ID
Serial #
세션의 시리얼 번호
Time
주의
Session 정보 수집에 사용하는 티베로 라이브러리 버전에 따라 일부 지표 (Username, Program, Module, Schema, OS User, Machine, Terminal 등) 가 수집되지 않을 수 있다.


세션의 시리얼 번호
Elapsed Time
세션의 현재 수행 중인 SQL의 Elapsed Time
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로 대기한 시간
OS 사용자 이름
CPU (%)
프로세스 레벨의 CPU 사용률
Memory
메모리 사용량
Running Time
프로세스의 Running Time
Last Time
프로세스의 Last Time
User Name
현재 사용자 이름
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로 대기한 시간
SQL 내용
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로 대기한 시간
Serial #
세션의 시리얼 번호
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)
Wait Class 이름
Count
Wait Event 발생 횟수
Time
Wait Event 대기 시간
Wait Event 대기 시간
Count
Wait Event 발생 횟수
User Name
현재 사용자 이름
Module
dbms_application_info.set_module로 지정된 모듈의 이름
OS User
연결된 세션의 OS 계정 이름
Machine
연결된 세션의 호스트 이름
Program
세션의 프로그램 이름



















본 장에서는 실시간 지표 수집을 통해 누적된 데이터의 기간 분석을할 수 있는 Analysis 메뉴에 대해 설명한다.
Performance Analysis - 성능과 관련된 지표들을 분석 할 수 있다.
History Analysis - 그간 Plan 변화, 접속 세션 수 변화, Alert 발생량 변화, Invalid Object 갯수 변화 등의 추이를 분석할 수 있다.
Usage Analysis - Tablespace, Filesystem, Segment, Temp Tablespace, Undo Tablespace 사용량 추이를 확인할 수 있다.
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

