프린트 하기

내맘대로긍정이 알려주는

Oracle 23ai 신기능
무료 세미나 발표자료

다운로드 trending_flat

OS환경 : Oracle Linux 7.6 (64bit)

 

DB 환경 : Oracle Database 19.10.0.0

 

방법 : 오라클 19c 리스너 로그 월별 자동 백업 스크립트(리스너 로그 자동 정리 방법)

오라클 db 사용 시 사용량이 많은 db일수록 필연적으로 리스너 로그도 많이 쌓이게됨

보통 월간 점검을 할 때 리스너 로그를 수동으로 백업 및 /dev/null 처리를 하기도 하지만

점검 서버가 여러대라면 매번 리스너 경로에 들어가서 백업해주는게 힘듬

그래서 위 작업을 간단하게 스크립트로 자동화하는 방법을 설명함

 

 

리스너 상태 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ lsnrctl status
 
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-JUL-2021 16:44:01
 
Copyright (c) 19912021, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE19)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                19-JUL-2021 16:43:24
Uptime                    0 days 0 hr. 0 min. 37 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /app/oracle/product/19.0.0/network/admin/listener.ora
Listener Log File         /app/oracle/diag/tnslsnr/ORACLE19/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORACLE19)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

리스너 로그 경로가 보임

 

 

리스너 로그 경로로 이동(alert이 아닌 trace)

1
2
3
4
5
6
$ cd /app/oracle/diag/tnslsnr/ORACLE19/listener/trace
$ ls -al
total 77896
drwxr-x---.  2 oracle dba       26 Jul 19 16:43 .
drwxr-x---. 14 oracle dba     4096 Jan 11  2021 ..
-rw-r-----.  1 oracle dba 79668828 Jul 19 16:44 listener.log

 

 

리스너 로그 수동 백업

1
2
3
4
5
6
7
8
9
$ cp listener.log listener.log.20210719
$ cp /dev/null listener.log
$ gzip listener.log.20210719 
$ ls -al
total 652
drwxr-x.  2 oracle dba     58 Jul 19 16:45 .
drwxr-x. 14 oracle dba   4096 Jan 11  2021 ..
-rw-r.  1 oracle dba    815 Jul 19 16:45 listener.log
-rw-r.  1 oracle dba 661550 Jul 19 16:44 listener.log.20210719.gz

리스너 로그를 listener.log.오늘날짜로 복사한 다음 /dev/null로 덮어씌우고 복사한 파일을 gzip 으로 압축함

 

 

리스너 로그 자동 백업(스크립트)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ cat backuplistenerlog.sh 
#! /bin/bash
# backuplistenerlog.sh 
# listener log backup script
 
export li_log=/app/oracle/diag/tnslsnr/ORACLE19/listener/trace
export date=`date '+%Y%m%d'`
 
echo "listener log backup start time : `date` ------------------- START" >> $li_log/bckli_his.log
cp -v $li_log/listener.log $li_log/listener.log.$date >> $li_log/bckli_his.log
cp -/dev/null $li_log/listener.log >> $li_log/bckli_his.log
gzip -v $li_log/listener.log.$date >> $li_log/bckli_his.log
ls -ltr listener* >> $li_log/bckli_his.log
 
echo "listener log backup end time : `date` ------------------- END" >> $li_log/bckli_his.log
echo "" >> bckli_his.log

 

 

실행권한 부여 후 스크립트 테스트 실행

1
2
3
4
5
6
7
8
9
10
11
$ chmod +x backuplistenerlog.sh 
$ sh backuplistenerlog.sh 
/app/oracle/diag/tnslsnr/ORACLE19/listener/trace/listener.log.20210719:     78.5-- replaced with /app/oracle/diag/tnslsnr/ORACLE19/listener/trace/listener.log.20210719.gz
$ ls -al
total 20
drwxr-x---.  2 oracle dba 4096 Jul 19 19:04 .
drwxr-x---. 14 oracle dba 4096 Jan 11  2021 ..
-rwxr-xr-x.  1 oracle dba  624 Jul 19 19:04 backuplistenerlog.sh
-rw-r--r--.  1 oracle dba  530 Jul 19 19:04 bckli_his.log
-rw-r-----.  1 oracle dba    0 Jul 19 19:04 listener.log
-rw-r-----.  1 oracle dba  469 Jul 19 19:04 listener.log.20210719.gz

정상적으로 실행되고 bckli_his.log와 listener.log.{오늘날짜}.gz 파일이 생성됨

 

 

bckli_his.log 확인

1
2
3
4
5
6
7
$ cat bckli_his.log 
listener log backup start time : Mon Jul 19 19:04:13 KST 2021 ------------------- START
??/app/oracle/diag/tnslsnr/ORACLE19/listener/trace/listener.log?? -> ??/app/oracle/diag/tnslsnr/ORACLE19/listener/trace/listener.log.20210719??
??/dev/null?? -> ??/app/oracle/diag/tnslsnr/ORACLE19/listener/trace/listener.log??
-rw-r-----. 1 oracle dba 469 Jul 19 19:04 listener.log.20210719.gz
-rw-r-----. 1 oracle dba   0 Jul 19 19:04 listener.log
listener log backup end time : Mon Jul 19 19:04:13 KST 2021 ------------------- END

3번째 줄 : 정상적으로 listener.log 파일이 listener.log.20210719 로 복사되었고

4번째 줄 : 이후에 /dev/null 파일이 listener.log 를 덮어씌움

5,6번째 줄 : 그리고 리스너파일 및 gz 로 묶은 파일 목록이 나옴

 

 

매월 1일 새벽 4시 0분에 스크립트 실행하게끔 설정

1
2
$ crontab -e
0 4 1 * * /app/oracle/diag/tnslsnr/ORACLE19/listener/trace/backuplistenerlog.sh

 

 

*root 계정에서 crontab 등록시

1
2
$ crontab -e
0 4 1 * * su - oracle -/app/oracle/diag/tnslsnr/ORACLE19/listener/trace/backuplistenerlog.sh

 

 

매월 리스너 로그를 자동으로 백업하는 스크립트로 업무를 조금이나마 편하게 할 수 있음

 

 

참조 : 리스너 로그 정리방법

https://positivemh.tistory.com/172

 

리스너 로그 관리 정리 방법

OS환경 : Oracle Linux 6.8 (64bit) DB 환경 : Oracle Database 11.2.0.4 방법 : 리스너 로그 관리 로그 정리 방법 (로그 위치를 변경하지 않았다면) 10g 이하 $ORACLE_HOME/network/log 디렉토리11g 이상 $ORACL..

positivemh.tistory.com

https://positivemh.tistory.com/search/%EC%A0%95%EB%A6%AC%20%EB%B0%A9%EB%B2%95

 

내맘대로긍정

오라클 DB 관련 내용 및 컴퓨터 관련 내용을 공유합니다.

positivemh.tistory.com