내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
OS환경 : Oracle Linux 7.4 (64bit)
DB 환경 : Oracle Database 19.3.0.0
에러 : ASM audit file 증가 현상
/oracle 파일시스템 full 로 인해 db 접속 불가 현상이 발생하여 원인을 찾던 중
1
2
3
4
5
6
7
8
9
10
|
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 641M 1.3G 33% /dev/shm
tmpfs 2.0G 169M 1.8G 9% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 10G 4.1G 5.9G 41% /
/dev/sda3 2.0G 33M 2.0G 2% /tmp
/dev/sda5 30G 30G 20K 100% /oracle
tmpfs 394M 0 394M 0% /run/user/0
|
$GRID_HOME 의 rdbms 경로에 15GB를 차지하고 있는것을 확인함
1
2
3
4
5
6
7
8
9
10
11
|
$ cd /oracle/app/19.3/grid/
$ du -sh * | sort -hr
15G rdbms
2.0G lib
898M bin
466M usm
430M javavm
365M srvm
361M jdk
.
.
|
ls 로 확인해보니 몇가지 디렉토리가 조회되었는데 audit 파일인것을 직감함
1
2
3
|
$ cd /oracle/app/19.3/grid/
$ ls
admin audit doc install jlib lib log mesg public utl xml
|
audit 디렉토리로 가서 ls 를 입력해봤지만 결과가 나오지않았음
1
2
3
|
$ cd audit
$ ls
...(응답없음)
|
일단 audit 파일을 모두 지우려 했지만 실패함
1
2
3
|
$ cd /oracle/app/19.3/grid/rdbms/audit
$ rm -rf ./*
-bash: /bin/rm: Argument list too long
|
find 명령으로 현재경로에서 *.aud 파일 리스트을 인수로 받아 1000개씩 끊어서 모두 삭제함
1
|
$ find . -name '*.aud' -print0 | xargs -n1000 -0 rm -f
|
이후 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$ ls
+ASM_ora_4821_20200424224737197672773537.aud
$ ls
+ASM_ora_4821_20200424224737197672773537.aud +ASM_ora_4826_20200424224738181460576656.aud
$ ls
+ASM_ora_4821_20200424224737197672773537.aud +ASM_ora_4826_20200424224738181460576656.aud +ASM_ora_4831_20200424224739207825622668.aud
$ ls
+ASM_ora_4821_20200424224737197672773537.aud +ASM_ora_4826_20200424224738181460576656.aud +ASM_ora_4831_20200424224739207825622668.aud
$ ls
+ASM_ora_4821_20200424224737197672773537.aud +ASM_ora_4831_20200424224739207825622668.aud
+ASM_ora_4826_20200424224738181460576656.aud +ASM_ora_4837_20200424224740236281871625.aud
$ ls
+ASM_ora_4821_20200424224737197672773537.aud +ASM_ora_4831_20200424224739207825622668.aud +ASM_ora_4842_20200424224741194866191976.aud
+ASM_ora_4826_20200424224738181460576656.aud +ASM_ora_4837_20200424224740236281871625.aud
|
ls 할때마다(거의 1초마다) audit 파일이 생성되고 있음을 확인함
몇시간이 지난뒤 확인
1
2
3
4
5
6
|
$ ls | wc -l
7090
$ ls | wc -l
7108
$ ls | wc -l
7109
|
계속 파일 갯수가 증가하고 있음
해당 audit 로그 내용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
$ cat +ASM_ora_11031_20200425203012038238715791.aud
Audit file /oracle/app/19.3/grid/rdbms/audit/+ASM_ora_11031_20200425203012038238715791.aud
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Build label: RDBMS_19.3.0.0.0DBRU_LINUX.X64_190417
ORACLE_HOME: /oracle/app/19.3/grid
System name: Linux
Node name: ORACLE19
Release: 4.14.35-1818.3.3.el7uek.x86_64
Version: #2 SMP Mon Sep 24 14:45:01 PDT 2018
Machine: x86_64
Instance name: +ASM
Redo thread mounted by this instance: 0 <none>
Oracle process number: 24
Unix process pid: 11031, image: oracle@ORACLE19 (TNS V1-V3)
Sat Apr 25 20:30:12 2020 +09:00
LENGTH : '247'
ACTION :[7] 'CONNECT'
DATABASE USER:[1] '/'
PRIVILEGE :[6] 'SYSASM'
CLIENT USER:[6] 'oracle'
CLIENT TERMINAL:[5] 'pts/0'
STATUS:[1] '0'
DBID:[0] ''
SESSIONID:[10] '4294967295'
USERHOST:[8] 'ORACLE19'
CLIENT ADDRESS:[0] ''
ACTION NUMBER:[3] '100'
|
모두 sysasm이 connect 해서 발생한 로그임
해결 방법 : ASM 리소스 중 CHECK_INTERVAL 조절
CHECK_INTERVAL
반복적으로 점검하는 실행 시간 간격(초)
간격이 짧을수록 더 자주 점검 할 수 있지만 스크립트 에이전트를 사용하는 경우 자원 소비도 증가함
현재 CHECK_INTERVAL 값 확인
1
2
|
$ $GRID_HOME/bin/crsctl stat res ora.asm -p |grep ^CHECK_INTERVAL
CHECK_INTERVAL=1
|
CHECK_INTERVAL 값 60으로 변경
1
|
$ $GRID_HOME/bin/crsctl modify resource ora.asm -attr "CHECK_INTERVAL=60" -unsupported
|
변경된 CHECK_INTERVAL 값 확인
1
2
|
$ $GRID_HOME/bin/crsctl stat res ora.asm -p |grep ^CHECK_INTERVAL
CHECK_INTERVAL=60
|
30일 이상된 ASM audit 로그 삭제
1
|
$ find /oracle/app/19.3/grid/rdbms/audit -name '*.aud' -mtime +30 -exec rm {} \;
|
crontab 으로 반복 실행 설정
매일 새벽 4시 0분에 삭제하게끔 설정
1
2
|
$ crontab -e
0 4 * * * /bin/find /oracle/app/19.3/grid/rdbms/audit -name '*.aud' -mtime +30 -exec rm {} \;
|
나의 경우 모두 삭제하고 확인함
1
2
3
4
5
6
7
8
9
10
11
|
$ cd /oracle/app/19.3/grid/rdbms/audit/
$ ls -al
total 128
drwxr-xr-x. 2 oracle dba 4096 Apr 25 21:45 .
drwxr-xr-x. 13 oracle dba 4096 Apr 24 22:27 ..
-rw-r-----. 1 oracle dba 873 Apr 25 21:23 +ASM_ora_20629_20200425212305283833610713.aud
-rw-r-----. 1 oracle dba 873 Apr 25 21:24 +ASM_ora_20684_20200425212405287387975656.aud
-rw-r-----. 1 oracle dba 873 Apr 25 21:25 +ASM_ora_20738_20200425212505308480419411.aud
-rw-r-----. 1 oracle dba 873 Apr 25 21:25 +ASM_ora_20756_20200425212521470966715945.aud
-rw-r-----. 1 oracle dba 873 Apr 25 21:25 +ASM_ora_20778_20200425212544739357679064.aud
-rw-r-----. 1 oracle dba 873 Apr 25 21:26 +ASM_ora_20797_20200425212605297902030001.aud
|
1분마다 aud 파일이 생성되는 것을 확인 가능함
원인 : ASM 의 리소스 상태 확인으로 인한 audit 발생
ASM 의 리소스 상태 확인으로 인한 audit 발생
참조 : https://positivemh.tistory.com/553
http://dbaharrison.blogspot.com/2014/10/asm-audit-file-overload.html?m=1
https://positivemh.tistory.com/1033
'ORACLE > Trouble Shooting' 카테고리의 다른 글
ORA-07217: sltln: environment variable cannot be evaluated. (2) | 2020.05.10 |
---|---|
ORA-06512: at "SYS.DBMS_QOPATCH", line 777 (0) | 2020.05.06 |
DIA-48448: This command does not support multiple ADR homes (0) | 2020.03.29 |
DIA-48223: Interrupt Requested - Fetch Aborted - Return Code [1] [DIR_EXT] (0) | 2020.03.29 |
Invalid value for target_home [/app/oracle/product/19.0.0/db_1] (0) | 2020.03.24 |