OS환경 : Oracle Linux 6.8, Windows Server 2012 (64bit)
DB 환경 : Oracle Database 11.2.0.4
방법 : 리스너 로그 관리 로그 정리 방법
오라클 db 사용 시 사용량이 많은 db일수록 필연적으로 리스너 로그도 많이 쌓이게됨
로그 위치를 변경하지 않았다면
10g 이하 $ORACLE_HOME/network/log 디렉토리,
11g 이상 $ORACLE_BASE/diag/tnslsnr/'hostname'/listener/trace 디렉토리에 보면
로그 위치를 변경하지 않았다면 listener.log 파일 사이즈가 꾸준히 또는 급격하게 증가할 수 있음
이런 경우 리스너로그를 정리하는 방법을 설명함
리스너 로그경로 확인
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 12.2.0.1.0 - Production on 15-MAY-2018 23:31:02
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 15-MAY-2018 23:30:24
Uptime 0 days 0 hr. 0 min. 38 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File /app/oracle/diag/tnslsnr/ora/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle50)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCLXDB" has 1 instance(s).
Instance "orcl2", status READY, has 1 handler(s) for this service...
Service "orcl2" has 1 instance(s).
Instance "orcl2", status READY, has 1 handler(s) for this service...
|
lsnrctl 명렁어로 진입
1
|
$ lsnrctl
|
구성된 리스너명이 Listener 가 아닌 경우, 수동으로 지정
1
|
lsnrctl> set current_listener <리스너명>
|
listener.log 파일에 로그를 기록하지 않게끔 설정
(이 설정을 하지 않아도 복제 및 /dev/null 처리는 가능, listener.log 파일 삭제 처리는 불가능)
(이 설정을 하지 않고 listener.log 파일 삭제, 수동 수정(vi 등)시 리스너 파일이 제대로 쌓이지 않는 현상발생함)
1
|
lsnrctl> set log_status off
|
백업, null 처리 등 작업 진행
리스너 로그 복제(백업)
1
|
$ cp -av listener.log listener.log.20180520
|
/dev/null 을 리스너 로그에 덮어씌우기
1
|
$ cp /dev/null listener.log
|
복제한 리스너 로그 압축
1
|
$ gzip listener.log.20180520
|
listener.log 파일에 로그를 기록하게끔 설정
1
|
lsnrctl> set log_status on
|
set log_status off 로 변경하고, 파일 제거 또는 백업하고 listener.log 파일 생성 (생성하지 않아도 자동 생성)
11g 이상에서는 $ORACLE_BASE/diag/tnslsnr/'hostname'/listener/alert 에 log_xxxx.xml파일도 생기는데
이 로그는 ADRCI 용 로그임. 주기적으로 파일을 묶어서 백업해두는식으로 관리해야함
ADRCI 용 listener 로그 정리
ADRCI 용 listener 로그 경로로 이동
1
2
3
4
5
6
7
8
9
|
$ cd $ORACLE_BASE/diag/tnslsnr/'hostname'/listener/alert
$ ls
log_1801.xml
log_1802.xml
.
.
log_1899.xml
log_1900.xml
log_1901.xml
|
로그 백업용 폴더 생성
1
|
$ mkdir -p log_18nn
|
백업용 폴더로 일부 로그 이동
1
|
$ mv log_18* log_18nn
|
백업용 폴더 압축
1
|
$ tar -zcvf log_18nn.tar.gz log_18nn
|
또는 mtime 옵션을 이용해 정리
로그 백업용 폴더 생성
1
|
$ mkdir -p log_20180520
|
백업용 폴더로 일부 로그 이동(30일 지난 파일 이동)
1
|
$ find . -name "*.xml" -mtime +30 -exec mv {} /oracle/diag/tnslsnr/orcl/listener/alert/log_20180520/ \;
|
백업용 폴더 압축
1
|
$ tar -zcvf log_20180520 log_20180520
|
.xml 로그 파일을 쌓이지 않게 하는 방법
listener.ora 파일에 DIAG_ADR_ENABLED_{리스너명}=off 파라미터 설정 시 .xml 파일에 리스너로그가 쌓이지 않음
다만 이 방법을 사용할 경우 $ORACLE_BASE/diag 경로에 쌓이던 listener.log 파일에도 로그가 쌓이지 않고
11g 이전 리스너 로그경로($ORACLE_HOME/network/log) 경로에 listener.log 파일에 쌓이게 됨
Windows Server 환경 Oracle 에서 방법
listener.log 파일 복사 후 붙여넣기
복사된 listener.log 파일 이름 변경(listener.log.20180520)
메모장으로 listener.log 파일을 열어서 전체 선택 후 삭제 후 저장
또는 cmd 를 열어서 리스너로그 경로로 이동 후 type nul > listener.log 명령 사용
(리눅스의 cp /dev/null listener.log와 같음)
1
|
CMD> type nul > listener.log
|
참조 :
https://positivemh.tistory.com/544
https://positivemh.tistory.com/740
https://positivemh.tistory.com/563
http://jmkjb.tistory.com/entry/ListenerlogManage
https://community.oracle.com/thread/604855
'ORACLE > Admin' 카테고리의 다른 글
11g AutoTask 와 자동통계 ( Automatic Optimizer Statistics ) (0) | 2018.06.21 |
---|---|
export messages(EXP) 익스포트 메세지 (0) | 2018.05.30 |
Assistant : Oracle Database / GI 업데이트, 개정판, PSU, SPU (CPU), 번들 패치, 패치 세트 및 기본 릴리스에 대한 참조 다운로드 (문서 ID 2118136.2) (0) | 2018.05.14 |
오라클 케릭터셋 변경 방법 및 오라클 한글 테이블 생성 방법 (0) | 2018.04.25 |
2018년 4월 Oracle 중요 패치 업데이트 | Oracle Critical Patch Update for April 2018 (0) | 2018.04.18 |