共計 1890 個字符,預(yù)計需要花費 5 分鐘才能閱讀完成。
本篇文章給大家分享的是有關(guān) oracle 怎樣進(jìn)行審計日志清理,丸趣 TV 小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。
– 進(jìn)入審計日志目錄:
cd $ORACLE_BASE/admin/$ORACLE_SID/adump
– 刪除 3 個月前的審計文件:
find ./ -type f -name *.aud -mtime +91|xargs rm -f
– 一次清空所有審計文件
find ./ -type f -name *.aud |xargs rm-f
find ./ -mtime +7 -name *.aud -type f –delete
通常我們新裝好一個數(shù)據(jù)庫中查詢審計開關(guān)的時候,可能會發(fā)現(xiàn)它的設(shè)置為 DB。(預(yù)裝設(shè)置,如果為其他表示被認(rèn)為設(shè)置過)
SQL show parameter audit_trail
Name TYPE VALUE
--------------------------------------------------------
------
audit_trail string DB
audit_trail=DB,代表的是,oracle 將把每次審計跟蹤記錄在數(shù)據(jù)庫的一張叫做 AUD$ 的表中。
SQL select owner,table_name,tablespace_name from dba_tables a where a.table_name = AUD$ OWNER TABLE_NAME TABLESPACE_NAME
--------------------------------------------------------
------
SYS AUD$ SYSTEM
而這張表所在的表空間,正式 oracle 數(shù)據(jù)庫最重要的 SYSTEM 表空間。
由于這個表空間非常特殊:如果此時它正好被設(shè)置為自動擴(kuò)展(AUT=YES)的話:
SQL select a.tablespace_name,a.bytes,a.autoextensible from dba_data_files a where a.tablespace_name= SYSTEM TABLESPACE_NAME BYTES AUT
--------------------------------------------------------
SYSTEM 2147473648 YES
長此以往,SYSTEM 表空間最終會因為過度肥胖把磁盤撐爆。
(反過來,如果 SYSTEM 表空間的 autoextensible=NO,AUD$ 表就沒地方寫就會報錯無法分配空間)
SO,有點數(shù)據(jù)庫就會根據(jù)情況,將審計功能“關(guān)閉”:
1. 設(shè)置審計參數(shù)關(guān)閉
SQL alter system set audit_trail=none scope=spfile;
2. 重啟數(shù)據(jù)庫
SQL shutdown immediate;
SQL startup;
這時候小伙伴以為高枕無憂了,其實,oracle 早有準(zhǔn)備,有一個叫強制審計的變態(tài)功能在等著你。
只要你敢
用 SYSDBA 或者 SYSOPER 權(quán)限登錄數(shù)據(jù)庫
敢 startup
敢 shutdown
oracle 就給你在 $ORACLE_BASE/admin/$ORACLE_SID/adump 目錄中記.aud 的文件
所以,
開了 DB 功能,會同時將審計日志記在 AUD$ 表中和操作系統(tǒng) aud 文件中。
設(shè)置為 NONE,仍然會而且毫無其他辦法的將記錄在操作系統(tǒng) aud 文件中。
* 數(shù)據(jù)庫的表為:sys.aud$
* 操作系統(tǒng)目錄為:$ORACLE_BASE/admin/ 實例名 /adump/
可通過 SQL show parameter audit 查詢到)
是不是很變態(tài)?
所以這個目錄長期不清理的話,會積壓大量 *.aud 文件
長期大量不刪除的話,會影響到操作系統(tǒng) inodes
所以,小伙伴們:
如果為 DB,記得定期清空 aud$ 表
SQL truncate table sys.aud$;
如果你不想用 DB 功能,可以設(shè)置關(guān)閉
SQL alter system set audit_trail=none scope=spfile;
注意,需要重啟數(shù)據(jù)庫
SQL shutdown immediate;
SQL startup;
如果為 NONE,記得清空 aud 文件或者配置 crontab 定時任務(wù)定時清空 aud 文件。
注意:不要直接刪除 adump 目錄,否則,你會 sqlplus 不了數(shù)據(jù)庫。
以上就是 oracle 怎樣進(jìn)行審計日志清理,丸趣 TV 小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注丸趣 TV 行業(yè)資訊頻道。