본문 바로가기

Oracle/admin

ADMIN 점검 사항

--인스턴스 상태
select instance_name, status from v$instance;

--초기 파라메터 확인
show parameter spfile
값이 없으면 pfile로 DB 기동한것이고 있으면 spfile 경로가 보인다.

--리스너 상태
lsnrctl status

--오라클 S/W, 아카이브 공간 확인
df -k(dbf)

--리소스 체크
select * from v$resource_limit;

--오라클 서버 메모리
select sum(bytes)/1024/1024 shared_pool_size from v$sgastat
where pool='shared pool'

--백업확인
select * from v$backup; --(HotBackup)

--Recover file 조회
select * from v$recover_file;

--RedoLog 발생량 확인
select thread#, to_char(first_time, 'yyyy.mm.dd hh24') "Time", count(*) "Count"
from v$loghist
where first_time > sysdate -10
group by thread#, to_char(first_time, 'yyyy.mm.dd hh24');

--테이블스페이스 Flagmentation 조회
SELECT * FROM (
      SELECT tablespace_name,count(*) AS fragments,
             sum(bytes) AS total,
             max(bytes) AS largest
       FROM dba_free_space
       group by tablespace_name      )
WHERE fragments > 200;

--사용량이 80%이상인 테이블스페이스
 SELECT a.tablespace_name, a.bytes/1024/1024 "AMOUNT(MB)", b.bytes/1024/1024 "USED(MB)", c.bytes/1024/1024 "FREE(MB)",
(b.bytes*100)/a.bytes "% USED", (c.bytes*100)/a.bytes "% FREE"
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name=b.tablespace_name
AND a.tablespace_name=c.tablespace_name
AND (c.bytes*100)/a.bytes<20;

--테이블스페이스 사용량확인
SELECT U.TABLESPACE_NAME  ,
       SUM(U.BYTES)/1024/1024 TOT,
       round(SUM(F.BYTES)/1024/1024,2)  FREE,
       round(SUM(U.BYTES-F.BYTES)/1024/1024,2) USED,
       round(SUM(F.BYTES/1024/1024)/SUM(U.BYTES/1024/1024)*100,2) FREE_RATIO,u.autoextensible auto
FROM DBA_DATA_FILES U,
    (SELECT FILE_ID,SUM(BYTES) BYTES FROM DBA_FREE_SPACE GROUP BY FILE_ID) F
WHERE U.FILE_ID = F.FILE_ID
GROUP BY U.TABLESPACE_NAME,u.autoextensible;

--DB Buffer Cache Hit Ratio
select to_char(sysdate,'yyyy.mm.dd HH24:MI:SS') "Time",
a.value+b.value "Logical Reads",
c.value "Physical Reads",
round((1 - (c.value/(a.value+b.value)))*100, 3) "Hit Ratio"
from v$sysstat a, v$sysstat b, v$sysstat c
where a.name = 'db block gets'
and b.name = 'consistent gets'
and c.name = 'physical reads';

--Library Cache Hit Ratio
select 100-(sum(reloads)/sum(pins))*100 
from v$librarycache;

--Dictionary Cache Hit Ratio
select 100-(sum(getmisses)/sum(gets))*100
from v$rowcache;

--Memory Sort Ratio
select a.value "Sort(memory)",
b.value "Sort(disk)",
round(a.value/(a.value+b.value) * 100 ,2) "Memory Sort Ratio"
from v$sysstat a, v$sysstat b
where a.name = 'sorts (memory)'
and b.name = 'sorts (disk)';

--PGA Cache Hit Ratio
select round(((a.value * 100 ) / (a.value + b.value)),2)||'%' "PGACacheHitRatio%"
from v$pgastat a, v$pgastat b
where a.name = 'bytes processed'
and b.name = 'extra bytes read/written';

--Rollback Segment's wait ratio
select name, waits/gets*100 mis_ratio
from v$rollstat ,v$rollname;

--1Month 주기로 데이터 증가량
select to_char(creation_time, 'RRRR Month') "Month",sum(bytes)/1024/1024 "Growth in Meg"
from sys.v_$datafile
where creation_time > SYSDATE-365
group by to_char(creation_time, 'RRRR Month');

select rn.name, (rs.waits/rs.gets) rbs_header_wait_ratio from v$rollstat rs, v$rollname rn
where rs.usn = rn.usn order by 1;  
-->  조회된 rbs_header_wait_ratio 가 0.01 보다 크면, rollback segment contention 방지를 위해 개수를 추가합니다.

select class, count
from v$WAITSTAT
where class in ('undo header','undo block', 'system undo header', 'system undo block');
-->만약 1% 이상을 초과하는 경우 rollback segment 크기를 현재보다 크게 하거나 새롭게 생성/추가하시기 바랍니다.

 select initial_extent + next_extent * (extents -1) "RBS SIZE(byte)", extents  from dba_segments
where segment_type ='ROLLBACK';
--> query의 평균 값(byte)을 rollback segment들의 optimal size로 사용할 수 있습니다.

'Oracle > admin' 카테고리의 다른 글

audit 자동 통계수집 disable  (0) 2016.06.13
2pc_pending  (0) 2016.06.13
성능 분석 View  (0) 2016.06.13
Keep Buffer 대상 선정 SQL  (0) 2016.06.13
11gR2 RAC 권장 파라미터 정리  (0) 2016.06.03