728x90
AWR
Oracle 상태가 어떤지 분석할 때 가장 많이 사용하는 방법입니다.
vi 파일 수정(꼭 할 필요는 없음)
vi ~/.zshrc # vi로 열어서 아래의 내용을 붙여 넣는다
#Terminal Prompt
export PS1="%F{cyan}%n@%m%f %F{green}%1~%f %# "
#SQL Developer
export SQLPATH=/Applications/SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin
alias sqld="cd $SQLPATH"
alias sqlp="$SQLPATH/sqldeveloper &"
alias sqlpe="$SQLPATH/sqldeveloper --AddVMOption=-Duser.language=en &"
#VirtualBox Linux
alias strdb="ssh oracle@192.168.0.111"
alias strdbf="sftp oracle@192.168.0.111"
#Safari
alias safari="open /Applications/Safari.app"
#AWR 환경에 맞는 폴더를 만들어서 입력한다.
alias AWRD="cd /Volumes/EXT1TB/AWR"
# Lang Set
#export LANG=en_US
#export LANG=ko_KR.UTF-8
source ~/.zshrc
AWR 분석에 가장 중요한 기본 분석 주기(DEFUALT 1시간에 8일)
SELECT
DBID
, SNAP_INTERVAL
, RETENTION
, TOPNSQL
FROM DBA_HIST_WR_CONTROL;
분석 주기 변경
-- 10분 단위 (보관주기 30일)
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=>10, RETENTION=>30*24*60);
-- 10분 단위 (보관주기 90일)
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=>10, RETENTION=>90*24*60);
-- 10분 단위 (보관주기 30일)(TOPNSQL 100)
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=>10, RETENTION=>30*24*60, TOPNSQL=>'100');
-- 10분 단위 (보관주기 90일)(TOPNSQL 100) -> 업계에서 많이 사용
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=>10, RETENTION=>90*24*60, TOPNSQL=>'100');
-- 30분 단위 (보관주기 90일)(TOPNSQL 100)
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=>30, RETENTION=>90*24*60, TOPNSQL=>'100');
-- Default값 변경(60분 단위 8일 보관)
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=>60, RETENTION=>8*24*60, TOPNSQL=>'DEFAULT');
TOPNSQL Default값 분석
SELECT *
FROM V$PARAMETER
WHERE NAME = 'statistics_level';
만약 TYPICAL이면 값이 30이고 ALL이면 100이다.
AWR 보관 주기 관련해서 가장 중요한 건 SYSAUX 테이블스페이스 공간이 충분이 확보되어야 한다. AWR의 interval을 짧게 주고 retension을 길게 주면 빠른 속도로 데이터가 늘어나기 때문에 꼭 확인해주어야 한다.
SYSAUX TABLESPACE 상태, 사이즈 확인
SELECT
TABLESPACE_NAME,
FILE_NAME,
BYTES/1024/1024 AS "SIZE(GB)"
FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME = 'SYSAUX'
ORDER BY 1, 2;
SNAP_ID 분석
SELECT
DBID,
SNAP_ID,
TO_CHAR(END_INTERVAL_TIME, 'YYYY/MM/DD(DY) HH24:MI') AS "END_INTERVAL_TIME"
FROM
DBA_HIST_SNAPSHOT
WHERE END_INTERVAL_TIME >= TRUNC(SYSDATE) -1
AND END_INTERVAL_TIME < TRUNC(SYSDATE) +1
ORDER BY SNAP_ID;
AWR 보고서 디렉터리 생성
cd /home/oracle
mkdir AWR
AWR 보고서 생성
-- 리눅스 서버 접속(sqlplus / as ysdba 실행)
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
@/oracle/app/oracle/product/19.0.0.0/db_1/rdbms/admin/awrrpt.sql
AWR 비교 보고서 생성
-- 리눅스 서버 접속(sqlplus / as ysdba 실행)
@$ORACLE_HOME/rdbms/admin/awrddrpt.sql
@/oracle/app/oracle/product/19.0.0.0/db_1/rdbms/admin/awrddrpt.sql
AWR 보고서에서 가장 많이 보는 건 오라클 이벤트를 확인하고 어디에 문제 있는지 분석하고 TOPSQL을 확인하는 게 중요하다. AWR에서 가장 중요한 건 서버에 들어갈 AWR 일자와 시간을 어떻게 뽑느냐가 관건이다. AWR interval을 짧게 주어야 보다 정확하게 분석이 가능하다.
참고
https://www.youtube.com/watch?v=_j8BHtFVRB0
728x90
'Oracle > Oracle DataBase 관리' 카테고리의 다른 글
Oracle RMAN 백업은 기술이다. 1부 (1) | 2023.01.11 |
---|---|
오라클 FLASHBACK을 이용한 빠른 복구 방법 (0) | 2022.12.31 |
Oracle(보안) DB IP 접근 제한 환경설정 (0) | 2022.12.16 |
Oracle(보안) TDE 암호화 설정 (0) | 2022.12.15 |
Oracle 복구를 빠르게 하는 방법(IMPDP) (0) | 2022.12.08 |