Tibero를 모니터링 할 수 있는 쿼리 및 Command를 안내합니다.
4. Tibero Monitoring
4.1. Instance/Database Info
Column
|
Description
|
Instance Name
|
노드 별 인스턴스 이름
|
Database Name
|
데이터베이스 이름
|
Version
|
티베로 버전 정보
|
Status
|
데이터베이스 OPEN Mode
|
NLS Character
|
캐릭터셋 정보(NLS_CHARACTERSET/NLS_NCHAR_CHARACTERSET)
|
Log Mode
|
로그 모드(NOARCHIVELOG/ARCHIVELOG)
|
DB Create Time
|
DB 생성 시간
|
DB Uptime
|
DB 가동 시간
|
Example
set linesize 160
col "Instance Name" format a15
col "Database Name" format a15
col "Version" format a24
col "Status" format a12
col "NLS Character" format a20
col "Log Mode" format a13
col "DB Create Time" format a20
col "DB Uptime" format a15
select i.instance_name "Instance Name"
, d.name "Database Name"
, v.vv "Version"
, d.open_mode "Status"
, c.cc "NLS Character"
, d.log_mode "Log Mode"
, to_char(d.create_date,'YYYY/MM/DD HH24:MI:SS') "DB Create Time"
, floor(xx)||'d '||floor((xx-floor(xx))*24)||'h '||floor( ((xx - floor(xx))*24 -
floor((xx-floor(xx))*24) )*60 )||'m' as "DB Uptime"
from v$database d
, ( select instance_name, (sysdate-startup_time) xx
from v$instance
) i
, ( select aggr_concat(value, ' ') vv
from v$version
where name in ('PRODUCT_MAJOR', 'PRODUCT_MINOR', 'BUILD_NUMBER',
'STABLE_VERSION')
) v
, ( select aggr_concat(value, '/') cc
from _dd_props
where name in ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET')
) c
/
Instance Name Database Name Version Status NLS Character Log Mode
DB Create Time DB Uptime
--------------------- ---------------------- ------------- ---------------- ---------------------------- ----------------------------
------------------------- ----------------------------------------------
tac1 tac 6 159159 FS07_CS_1808 READ WRITE UTF8/UTF16
NOARCHIVELOG 2018/10/10 15:26:08 1d 3h 47m |
4.2. Memory Info
Memory 영역 모니터링은 데이터베이스 성능과 밀접히 연관되어 있습니다.
대표적으로 악성 sql 로 인해 불필요한 Disk I/O 가 많이 발생된다면 메모리 재 사용률은
떨어지게 되고 DB 전체 성능이 안좋아지게 됨으로써 낮은 Hit Ratio 결과로 보여질 것 입니다.
이 때, 성능 진단 6.1 TPR 또는 5.7 Top SQL Info 를 통해 문제되는 sql 을 찾아 Tunning 함으로
DB 전체의 성능을 향상시킬 수 있습니다.
4.2.1. Tibero Memory Info
Item
|
Description
|
MEMORY_TARGET 값
|
인스턴스가 사용 가능 메모리 최대
|
TSM/SGA(Used)
|
인스턴스에서 사용하는 공유 메모리 값
|
PGA(Allocated)
|
할당되어 진 PGA(세션단위로할당) 메모리 총 값
|
PGA(Used)
|
사용 중 인 PGA 메모리 총 값
|
Example
set linesize 130
select name, round(value/1024/1024, 2) "Size(MB)"
from v$parameters
where name = 'MEMORY_TARGET'
union all
select 'TSM/SGA(Used)' name, round(sum(used)/1024/1024, 2) "Size(MB)"
from v$sga
where name in ('FIXED MEMORY', 'SHARED POOL MEMORY')
union all
select 'PGA(Allocated)' name, round(sum(value)/1024/1024, 2) "Size(MB)"
from v$pgastat
where name in ('FIXED pga memory', 'ALLOCATED pga memory')
union all
select 'PGA(Used)' name, round(value/1024/1024, 2) "Size(MB)"
from v$pgastat
where name = 'USED pga memory (from ALLOCATED)'
/
NAME Size(MB)
---------------------------------------------------------------- --------------
MEMORY_TARGET 2048
SGA(Used) 836.43
PGA(Allocated) 367.8
PGA(Used) 63.74
|
4.2.2. Buffer Hit Ratio
Item
|
Description
|
Database Buffer
|
데이터를 메모리에서 처리 한 확률 수치입니다.
통상적으로 90% 이상이 정상이나, 업무 특성 및 시점(batch수행)에 따라
낮을 수 있습니다. |
Example
set linesize 132
set feedback off
col "Time" format a19
SELECT TO_CHAR(sysdate,'yyyy/mm/dd hh24:mi:ss') "Time"
,"Physical read"
,"Logical read"
,"Hit"
,CASE WHEN "Hit" > 90 then 'Good'
WHEN "Hit" between 70 and 90 then 'Average'
ELSE 'Not Good'
END as "Status"
FROM
(
SELECT pr1.value + pr2.value "Physical read"
,bg1.value + bg2.value + bg3.value "Logical read"
,ROUND( (1 - (pr1.value + pr2.value) / (bg1.value + bg2.value + bg3.value) ) * 100, 2) "Hit"
FROM v$sysstat pr1, v$sysstat pr2,
v$sysstat bg1 , v$sysstat bg2 , v$sysstat bg3
WHERE pr1.name = 'block disk read'
and pr2.name = 'multi block disk read - blocks'
and bg1.name = 'consistent block gets'
and bg2.name = 'consistent multi gets - blocks'
and bg3.name = 'current block gets'
)
/
Time Physical read Logical read Hit Status
-------------------------- ------------------ ----------------------- ---------- --------
2019/01/09 11:09:05 4752 1139327 99.58 Good
|
4.2.3. Shared Cache Hit Ratio
Item
|
Description
|
SQL(Library) Cache
|
사용자가 문장을 수행할 때 SQL 과 Parse Tree, Plan 등을 저장하여
공유하는 메모리 공간입니다. 통상적으로 90% 이상이 정상이나 업무 특성을 고려해 모니터링 합니다.
|
Dictionary Cache
|
SYSTEM TABLESPACE 에 저장되어 있는Data Dictionary 정보가
Shared Pool에 상주하는 부분으로 Tibero 데이터베이스에 저장된 모든 객체 및 이와 관련된 정보들 을 저장하는 시스템 테이블들이 로딩되는 영역입니다. 유저가 실행한 SQL 문장을 파싱할 때 Syntax와 접근 권한 등을
확인하면서 참조되고 공유하는 내용이므로 Shared Pool 영역에 저장됩니다. Hit율이 95%이하일 때는 Shared Pool 사이즈를 늘려줍니다. |
Example
set linesize 132
set feedback off
col "Time" format a19
SELECT TO_CHAR(sysdate,'yyyy/mm/dd hh24:mi:ss') AS "Time"
, 'SQL(Library) Cache' AS "Name"
, hit AS "Hit(%)"
, CASE WHEN hit > 90 then 'Good'
WHEN hit between 70 and 90 then 'Average'
ELSE 'Not Good'
END AS "Status"
FROM ( SELECT gethitratio AS hit
FROM v$librarycache
WHERE namespace= 'SQL AREA' )
UNION ALL
SELECT TO_CHAR(sysdate,'yyyy/mm/dd hh24:mi:ss') AS "Time"
, 'Dictionary Cache' AS "Name"
, hit AS "Hit(%)"
, CASE WHEN hit > 90 then 'Good'
WHEN hit between 70 and 90 then 'Average'
ELSE 'Not Good'
END AS "Status"
FROM ( SELECT ROUND((1- sum(miss_cnt)/(sum(hit_cnt+miss_cnt)))*100, 2) AS hit
FROM v$rowcache )
/
Time Name Hit(%) Status
---------------------------- ---------------------------- --------- ----------
2019/01/09 11:09:27 SQL(Library) Cache 98.44 Good
2019/01/09 11:09:27 Dictionary Cache 97.31 Good
|
'Admin, 환경설정' 카테고리의 다른 글
[Tibero] Tibero 운영 가이드 for beginner (8) (0) | 2023.05.12 |
---|---|
[Tibero] Tibero 운영 가이드 for beginner (7) (0) | 2023.05.12 |
[Tibero] Tibero 운영 가이드 for beginner (5) (0) | 2023.05.12 |
[Tibero] Tibero 운영 가이드 for beginner (4) (0) | 2023.05.12 |
[Tibero] Tibero 운영 가이드 for beginner (3) (0) | 2023.05.12 |