내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
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) 1991, 2021, 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 -v /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 -c /app/oracle/diag/tnslsnr/ORACLE19/listener/trace/backuplistenerlog.sh
|
매월 리스너 로그를 자동으로 백업하는 스크립트로 업무를 조금이나마 편하게 할 수 있음
참조 : 리스너 로그 정리방법
https://positivemh.tistory.com/172
https://positivemh.tistory.com/search/%EC%A0%95%EB%A6%AC%20%EB%B0%A9%EB%B2%95
'ORACLE > Admin' 카테고리의 다른 글
오라클 19c ahf(tfa) 설치 및 로그수집 가이드(SRDC) (0) | 2021.08.15 |
---|---|
오라클 19c Cluster(grid) 프로세스 시작 순서도 (0) | 2021.08.05 |
오라클 19c 유저 이름 변경 방법 (0) | 2021.07.14 |
오라클 19c 수동 업그레이드 후 dba_registry의 status 컬럼 UPGRADED (0) | 2021.06.11 |
오라클 19c ASM diskgroup 생성 (0) | 2021.05.24 |