제가 사용하는 Daily Check 스크립트입니다.
사용방법을 아래에 순서대로 포스팅하였습니다.
1..bash_profile에 아래 명령어 추가 (디렉토리 위치에 따라 다르게 설정 가능)
##daily check
export CHKHOME=/home/tibero
alias dchk='sh $CHKHOME/dailycheck/daily_chk.sh'
2.dailycheck 디렉토리 생성 및 sh 파일생성
mkdir /home/tibero/dailycheck
log check 영역은 티베로의 sys.log에서 error라고 발생된 log 중에 특정 에러 번호(21012,5074,15112)를 제외하고 300개만 보겠다라는 의미입니다. (에러번호는 변경하셔서 사용하시면 됩니다.)
밑에 sql은 버퍼캐시히트율,세션카운트,테이블스페이스 사용량입니다.
$vi daily_chk.sh
##log check
cd /home/tibero/tibero6/instance/tibero/log/slog
tail -300 sys.log |grep -E -i "ec=error"|grep -Ev '21012|5074|15114'
##
tbsql sys/tibero <<EOF
@/home/tibero/dailycheck/sql/bchr.sql
@/home/tibero/dailycheck/sql/sess_cnt.sql
@/home/tibero/dailycheck/sql/tbs.sql
exit
EOF
3.sql 디렉토리 생성 후 sql 파일 생성
mkdir /home/tibero/dailycheck/sql
vi bchr.sql
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'
)
/
vi sess_cnt.sql
select count(*) from v$session
vi tbs.sql
set feedback off
set linesize 150
set pagesize 100
col "Tablespace Name" format a20
col "Bytes(MB)" format 999,999,999
col "Used(MB)" format 999,999,999
col "Percent(%)" format 9999999.99
col "Free(MB)" format 999,999,999
col "Free(%)" format 9999.99
col "MaxBytes(MB)" format 999,999,999
SELECT ddf.tablespace_name "Tablespace Name",
ddf.bytes/1024/1024 "Bytes(MB)",
(ddf.bytes - dfs.bytes)/1024/1024 "Used(MB)",
round(((ddf.bytes - dfs.bytes) / ddf.bytes) * 100, 2) "Percent(%)",
dfs.bytes/1024/1024 "Free(MB)",
round((1 - ((ddf.bytes - dfs.bytes) / ddf.bytes)) * 100, 2) "Free(%)",
ROUND(ddf.MAXBYTES / 1024/1024,2) "MaxBytes(MB)"
FROM
(SELECT tablespace_name, sum(bytes) bytes, sum(maxbytes) maxbytes
FROM dba_data_files
GROUP BY tablespace_name) ddf,
(SELECT tablespace_name, sum(bytes) bytes
FROM dba_free_space
GROUP BY tablespace_name) dfs
WHERE ddf.tablespace_name = dfs.tablespace_name
ORDER BY ((ddf.bytes-dfs.bytes)/ddf.bytes) DESC
/
4.dchk 확인
[tibero@ysbae sql]$ dchk
tbSQL 6
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Connected to Tibero.
SQL> SQL>
Time Physical read Logical read Hit Status
------------------- ------------- ------------ ---------- --------
2021/02/21 21:14:53 4177 13265478 99.97 Good
SQL> SQL>
COUNT(*)
----------
1
SQL> SQL> SQL>
Tablespace Name Bytes(MB) Used(MB) Percent(%) Free(MB) Free(%) MaxBytes(MB)
-------------------- ------------ ------------ ----------- ------------ -------- ------------
SYSSUB 40 37 93.44 3 6.56 32,768
UNDO 800 676 84.48 124 15.52 32,768
SYSTEM 100 80 80.13 20 19.88 32,768
TEST 3,076 430 13.98 2,646 86.02 32,768
USR 100 1 1.00 99 99.00 32,768
TS_MCM_MART_DATL 100 1 .88 99 99.13 32,768
IX_MCM_MART_DATL 100 1 .50 100 99.50 32,768
LOB_TEST 1,024 0 .00 1,024 100.00 0
SQL> Disconnected.
'다른 DBMS > Tibero' 카테고리의 다른 글
[운영] 세션 파라미터 설정과 관련 테스트 (0) | 2021.04.26 |
---|---|
'내용' 안에 '(Single quotation) 추가하기 (0) | 2021.04.20 |
DBMS_Scheduler (0) | 2021.01.13 |
[에러해결]TBR-10019 Updating partition key column would cause a partition change. (0) | 2021.01.12 |
[에러해결]TBR-10018 Partition key does not map to a partition. (0) | 2021.01.04 |
댓글