728x90

Audit Dump 위치 확인

show parameter audit_file_dest

ls | wc -l

파일 개수 확인하는 명령어

Background & User Dump Log 위치 확인

show parameter background_dump_dest
show parameter user_dump_dest

Alert Log, Trace Log 위치 확인 쿼리문

select value from v$diag_info;

cd /opt/oracle/diag/rdbms/xe/XE/trace
cd /opt/oracle/diag/rdbms/xe/XE/alert

오라클 로그 파일 자동 삭제 Shell 스크립트

vi delete_oracle_log.sh

vi로 delete_oracle_log.sh 쉘 파일을 만든다.

#!/bin/bash

# Audit Log (보관주기 6개월)
find /opt/oracle/admin/XE/adump/*.aud -mtime +180 -exec rm {} \\;

# Background & User Dump Log (보관주기 3개월)
find /opt/oracle/homes/OraDBHome21c/XE/rdbms/log/*.trc -mtime +90 -exec rm {} \\;

# Alert Log (보관주기 3개월)
find /opt/oracle/diag/rdbms/xe/XE/alert/*.xml -mtime +90 -exec rm {} \\;

# Trace Log (보관주기 3개월)
find /opt/oracle/diag/rdbms/xe/XE/trace/*.trc -mtime +90 -exec rm {} \\;
find /opt/oracle/diag/rdbms/xe/XE/trace/*.trm -mtime +90 -exec rm {} \\;
chmod 755 delete_oracle_log.sh

chmod 명령어로 쉘을 실행할 수 있는 권한을 준다.

crontab -e
## Oracle Log Delete
01 0 1 * * /delete_oracle_log 만든 경로/delete_oracle_log.sh
crontab -l

크론텝으로 매월 1일 00:01에 실행하도록 설정한다.

크론텝 시간

분 시 일(*:매일, 5:5일) 달(*:매달, 5:5월) 요일(0은 일요일, 6은 토요일)
0 5 * * * : 매일 5시 0분에 실행.
5 * * * * : 매시 5분이 될 때마다 실행. 즉, 한 시간 간격으로 실행.
* * * * * : 1분에 한 번씩 실행.
0 5 1 * * : 매달 1일 새벽 5시에 실행.

*/5 * * * * : 5분마다 한 번씩
0 */5 * * * : 5시간마다 한 번씩

0 5,11 * * * : 새벽 5시와 밤 11시.
0 5,11 * * 0,3 : 매주 일요일과 수요일 새벽 5시와 밤 11시.

리스너 로그 파일 자동 정리(압축 및 삭제) Shell 스크립트

vi delete_listener_log.sh

vi로 delete_listener_log.sh 쉘 파일을 만든다.

ls -lh

용량을 나타내는 명령어이다.

#!/bin/bash
export ORACLE_SID=XE
export ORACLE_HOME=/opt/oracle/homes/OraDBHome21c/XE
export PATH=$ORACLE_HOME/bin:$PATH
export DATE=`date -d '1 month ago' +%Y%m` 

cd /opt/oracle/diag/rdbms/xe/XE/trace

cp listener.log listener.log_${DATE}
zip listener.log_${DATE}.zip listener.log_${DATE}

cat /dev/null > /opt/oracle/diag/rdbms/xe/XE/trace/listener.log
rm -rf /opt/oracle/diag/rdbms/xe/XE/trace/listener.log_${DATE}
chmod 755 delete_listener_log.sh

chmod 명령어로 쉘을 실행할 수 있는 권한을 준다.

crontab -e
## Listener Backup & Delete
01 0 1 * * /home/oracle/scripts/delete_listener_log.sh
crontab -l

크론텝으로 매월 1일 00:01에 실행한다.

adrci 삭제

수동으로 삭제하는 방법 중에 adrci로 삭제하는 방법이 있다.

-- adrci 설정 확인
show homes

--  adrci Home Path 변경
set HOMEPATH diag/rdbms/xe/XE

-- Alert Log 삭제(분) (90*24*60) 90일 
purge -age 129600 -type ALERT

-- Trace Log 삭제(분) (90*24*60) 90일 
purge -age 129600 -type TRACE 

-- CDUMP Log 삭제(분) (90*24*60) 90일 
purge -age 129600 -type CDUMP 

-- HM Log 삭제(분) (90*24*60) 90일 
purge -age 129600 -type HM

-- INCIDENT Log 삭제(분) (90*24*60) 90일 
purge -age 129600 -type INCIDENT

참고

https://www.youtube.com/watch?v=-7PfFVLYdwQ&list=PLKaW9UT2TL3Lpqrh_lJ8PHyHpR7NgdrPP&index=11 

 

728x90
728x90

SQL 툴에서 SYS계정의 SYSDBA로 접속해야 한다.

SELECT * 
FROM SYS.X$DBGALERTEXT;

Alert log의 내용 결과를 나타내 주는 테이블이다.

Alert Log 확인

SELECT 
    HOST_ID, 
    HOST_ADDRESS,
    TO_CHAR(ORIGINATING_TIMESTAMP, 'YY/MM/DD(DY) HH24:MI:SS') AS "ALTERT_DATE",
    MESSAGE_TEXT
FROM  SYS.X$DBGALERTEXT
WHERE ORIGINATING_TIMESTAMP >= TRUNC(SYSDATE) -7
ORDER BY RECORD_ID;

날짜 포맷을 연월일 요일 시분초로 변경한 쿼리문이다. TRUNC는 어떤 식으로 사용돼 나면 아래와 같은 쿼리로 많이 사용한다.

-- 시간 확인
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';

SELECT SYSDATE FROM DUAL
UNION ALL
SELECT SYSDATE -1 FROM DUAL
UNION ALL
SELECT TRUNC(SYSDATE) -1 FROM DUAL;

WHERE ORIGINATING_TIMESTAMP >= TRUNC(SYSDATE)은 오늘 00시부터 모든 Alert log가 다 나오게 된다.

SELECT 
    '<html><font color=orange><b>'||HOST_ID||'</font></html>' AS "HOST_ID",
    '<html><bgcolor=blue><font color=white>'  ||HOST_ADDRESS  ||'</font></html>' AS "HOST_ADDRESS",
    '<html><bgcolor=yellow><font color=black>'||TO_CHAR(ORIGINATING_TIMESTAMP, 'YY/MM/DD(DY) HH24:MI:SS') AS "ALTERT_DATE",
    '<html><bgcolor=red><font color=white>'   || MESSAGE_TEXT ||'</font></html>' AS "ALTERLOG"
FROM  SYS.X$DBGALERTEXT
--WHERE ORIGINATING_TIMESTAMP >= SYSDATE  - INTERVAL '10' MINUTE
--WHERE ORIGINATING_TIMESTAMP >= SYSDATE  - INTERVAL '30' MINUTE
--WHERE ORIGINATING_TIMESTAMP >= SYSDATE  - INTERVAL '1' HOUR
WHERE ORIGINATING_TIMESTAMP >= TRUNC(SYSDATE) -20
AND   MESSAGE_TEXT LIKE '%ORA-%'
ORDER BY RECORD_ID;

SQL 디벨로퍼에서는 html code를 작성하면 안에 있는 데이터에 대한 색상을 표현할 수 있다.

Alert log 관리 꿀팁

adrci(Automatic Diagnostic Repository)로 디비 진단할 때 많이 사용하는 명령어이다.

adrci

오라클 계정에서 adrci를 입력한다.

adrci 설정 확인

show homes

Diagnostic 위치가 나온다.

adrci Home Path 변경

set HOMEPATH diag/rdbms/str/STR
-- Alert Log 삭제(분) (30*24*60) 30일 
purge -age 43200 -type ALERT

-- Alert Log 삭제(분) (60*24*60) 60일  
purge -age 86400 -type ALERT

-- Alert Log 삭제(분) (90*24*60) 90일 
purge -age 129600 -type ALERT

원하는 보관 주기에 맞춰서 사용하면 된다. 이렇게 해야 X$DBGALERTEXT fixed 테이블에 데이터를 줄일 수 있는 꿀팁이다.

참고

https://www.youtube.com/watch?v=q5J9Z5fKeFE 

 

728x90

+ Recent posts