清理Oracle資料庫大量的SYS使用者審計跟蹤檔案

stonebox1122發表於2017-05-14
由於配置了一些計劃任務,導致在adump目錄下產生了大量的SYS使用者登入的審計跟蹤檔案,可以看到目前/u01掛載點的inode已經使用了28%,數量達到了800多萬個,說明審計跟蹤檔案差不多有800萬個左右。
[oracle@DB1 ~]$ df -i
Filesystem            Inodes   IUsed    IFree IUse% Mounted on
/dev/sda3            1310720  108775  1201945    9% /
tmpfs                2041784     268  2041516    1% /dev/shm
/dev/sda1              51200      39    51161    1% /boot
/dev/sda4           29876224 8118425 21757799   28% /u01
/dev/sdb1            6553600      30  6553570    1% /arch
/dev/mapper/vg-data 32112640      49 32112591    1% /data

使用rsync是比較快速刪除大量小檔案的方法。用時大約12小時,平均每小時刪除65萬個左右。
[oracle@DB1 DB1]$ mkdir blank
[oracle@DB1 DB1]$ rsync -a --delete blank/ adump/

刪除後inode使用率降到了1%。
[oracle@DB1 ~]$ df -i
Filesystem            Inodes  IUsed    IFree IUse% Mounted on
/dev/sda3            1310720 108773  1201947    9% /
tmpfs                2041784    268  2041516    1% /dev/shm
/dev/sda1              51200     39    51161    1% /boot
/dev/sda4           29876224 120039 29756185    1% /u01
/dev/sdb1            6553600     32  6553568    1% /arch
/dev/mapper/vg-data 32112640     50 32112590    1% /data

刪除adump目錄下的檔案後,adump目錄仍舊佔用了600多M空間,更改資料庫的audit_file_dest,刪除adump,釋放空間。
[oracle@DB1 DB1]$ ll /u01/app/oracle/admin/DB1/
drwxr-xr-x 2 oracle oinstall 647413760 May 14 16:01 adump

SQL> alter system set audit_file_dest='/u01/app/oracle/admin/DB1/adump1' scope=spfile;

System altered.

SQL> show parameter audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/DB1/
                                                 adump
audit_sys_operations                 boolean     FALSE
audit_syslog_level                   string
audit_trail                          string      NONE

SQL> shutdown immediate   
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

Total System Global Area 8818814976 bytes
Fixed Size                  2260408 bytes
Variable Size            4664066632 bytes
Database Buffers         4127195136 bytes
Redo Buffers               25292800 bytes
Database mounted.
Database opened.

SQL> show parameter audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/DB1/
                                                 adump1
audit_sys_operations                 boolean     FALSE
audit_syslog_level                   string
audit_trail                          string      NONE

[oracle@DB1 DB1]$ rm -fr adump

然後配置刪除審計跟蹤檔案的計劃任務。
[oracle@DB1 scripts]$ pwd
/home/oracle/scripts
[oracle@DB1 scripts]$ cat delaud.sh
#!/bin/bash
. /home/oracle/.bash_profile
cd /u01/app/oracle/admin/DB1
rsync -a --delete blank/ adump1/

[oracle@DB1 scripts]$ crontab -e
00 18 * * * /home/oracle/scripts/delaud.sh >/dev/null 2>&

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28536251/viewspace-2139044/,如需轉載,請註明出處,否則將追究法律責任。

相關文章