DBLOG
» WTF
Toggle navigation
DBLOG
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
About Me
归档
标签
6、审计日志管理
无
2025-08-29 00:08:05
2
0
0
admin
[TOC] ### 1. 备份当前的SPFILE 在对SPFILE进行任何修改之前,先备份当前的SPFILE,以便在需要时可以恢复: ```sql sqlplus / as sysdba CREATE PFILE='/home/oracle/pfile.20230721' FROM SPFILE; ``` ### 2. 设置审计参数 将审计系统操作和审计轨迹设置为数据库扩展模式(包括SQL文本),并将修改应用到所有节点: ```sql ALTER SYSTEM SET audit_sys_operations=TRUE SCOPE=SPFILE SID='*'; ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE SID='*'; ``` ### 3. 重启数据库 在RAC环境中,重启每个节点以使更改生效。确保在重启一个节点之前,另一个节点仍在运行: **Node 1:** ```sh srvctl stop instance -d orcl -i orcl1 srvctl start instance -d orcl -i orcl1 ``` **Node 2:** ```sh srvctl stop instance -d orcl -i orcl2 srvctl start instance -d orcl -i orcl2 ``` ### 4. 审计数据存储与监控 审计开通后,审计数据会存储在数据库的SYS.AUD$表中。由于SYS.AUD$表位于SYSTEM表空间中,因此需要特别注意表空间的使用情况,以防止表空间耗尽。 #### 监控表空间使用情况 **查询系统表空间使用情况:** ```sql SELECT tablespace_name, total_space_mb, used_space_mb, free_space_mb, used_percentage FROM ( SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS total_space_mb, ROUND(SUM(bytes)/1024/1024) - ROUND(SUM(DECODE(LARGEST,0,bytes,0))/1024/1024) AS used_space_mb, ROUND(SUM(DECODE(LARGEST,0,bytes,0))/1024/1024) AS free_space_mb, ROUND((SUM(bytes) - SUM(DECODE(LARGEST,0,bytes,0)))*100/SUM(bytes), 2) AS used_percentage FROM dba_free_space GROUP BY tablespace_name ) WHERE tablespace_name = 'SYSTEM'; ``` **设置表空间的自动扩展(如果尚未设置):** ```sql ALTER DATABASE DATAFILE '/path_to_system_datafile/system01.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; ``` ### 5. 审计日志的管理 由于审计数据会不断积累,为了防止SYSTEM表空间被填满,需要对审计数据进行定期管理和清理: **创建存档表并将旧的审计记录移动到存档表:** ```sql CREATE TABLE sys.aud$_archive AS SELECT * FROM sys.aud$ WHERE 1=0; INSERT INTO sys.aud$_archive SELECT * FROM sys.aud$ WHERE timestamp# < SYSDATE - 30; DELETE FROM sys.aud$ WHERE timestamp# < SYSDATE - 30; COMMIT; ``` **设置定期作业以自动归档和清理审计记录:** ```sql BEGIN DBMS_SCHEDULER.create_job ( job_name => 'AUDIT_LOG_ARCHIVE_JOB', job_type => 'PLSQL_BLOCK', job_action => ' BEGIN INSERT INTO sys.aud$_archive SELECT * FROM sys.aud$ WHERE timestamp# < SYSDATE - 30; DELETE FROM sys.aud$ WHERE timestamp# < SYSDATE - 30; COMMIT; END;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY;BYHOUR=2;BYMINUTE=0;BYSECOND=0', enabled => TRUE ); END; ```
上一篇:
6、各种空间查询
下一篇:
6、重放相关
0
赞
2 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网